Vue3实战总结

Vue3+Vant开发:首页功能实现 阅读详情

1、父传子,实现自定义每页主题

在这里插入图片描述

2、在使用vant中的indexBar在这里插入图片描述

3、接口获值,按需遍历,模糊查询

在这里插入图片描述

4、返回按钮,数据传递

在这里插入图片描述

5、轮播图的实现

(一)第一步
在这里插入图片描述
在这里插入图片描述

(二)首页轮播图布局

<!-- 分类入口 -->
<div class="foodType">
	<ul class="flex foodType_main">
		<li class="foodType_item" >
			<img src="" alt="">
			<span class="f_title">
			美食
			</span>
		</li>
	</ul>
</div>
<style>
.foodType{ /* 轮播开始*/
	height:5.866666rem;//220
	.foodType_main{
		flex-wrap:wrap;
	}
	.foodType_item{
		width:20%;
		margin-top:0.533333rem;//20
		color:#666;
		text-align:center;
		span{
		color:#666;
	}
	img{
		display:block;
		width:1.333333rem;//50
		height:1.333333rem;
		margin:0.053333rem auto;//2
	}
}
// .mint-swipe-indicators{
// .is-active{
// background-color:red;
// }
// }
} /* 轮播结束*/
</style>

(三)图片处理

// 格式化图片地址
function formatImgSrc(hash,size,auto){
	/* 
	   7e76a23eb90dada42528bc41499d6f8jpeg 
	 /7/d8/a867c870b22bc74c87c348b75528djpeg.jpeg
	*/
	if(!hash)return '';
	hash = hash.replace(/^(.{1})(.{2})(.+(jpeg|png))$/g,'$1/$2/$3.$4');
	size = size || 90;
	size = auto?size:size+'x'+size;
	return auto?`//fuss10.elemecdn.com/${hash}?imageMogr/format/webp/thumbnail/${size}x/`:`//fuss10.elemecdn.com/${hash}?imageMogr/format/webp/thumbnail/!${size}r/gravity/Center/crop/${size}/`;
}
export default formatImgSrc;

全局挂载formatImgSrc

app.config.globalProperties.$formatImgSrc = formatImgSrc

在这里插入图片描述

6、自定义吸附指令

在这里插入图片描述

//自定义吸附指令
const vFixed = {
	mounted(el,binding){
		//1、获取元素距离顶部的高度
		var 
			_el = el,
			dt = 0,
			st = 0,
			arg=binding.arg || 0,
			tVal=arg/37.5 +'rem',
			bool,_bool;
		var 
			dHtml = document.documentElement,
			dBody = document.body;
			
		var css = {
			position :'fixed',
			left:'0',
			top:tVal,
			width:'100%'
		}
		//设置占位符
		var dP = document.createElement('p');
		dP.style.height = el.offsetHeight/37.5+'rem'
		dP.style.display='none'
		el.after(dP)
		
		do{
			//元素相对定位父级的距离
			dt += _el.offsetTop;
			_el = _el.offsetParent
		}while(_el)
		//2、获取滚动条高度
		//给window body HTML添加scroll事件
		window.addEventListener('scroll',scrollFn,false)
		dHtml.addEventListener('scroll',scrollFn,false)
		dBody.addEventListener('scroll',scrollFn,false)
		
		function scrollFn(){
			//拿到滚动的高度
			st = dHtml.scrollTop || dBody.scrollTop;
			bool = st>=dt-arg;//滚动的高度大于 父级相对距离
			if(_bool !== bool){//滚动条的状态
				// console.log(bool?'高度够了':'高度不够了')
				for(var k in css){
					if(bool){
						el.style[k] = css[k]
						dP.style.display='block'
					}else{
						//清除原本样式
						el.style[k] = ''
						dP.style.display='none'
					}
				}
				_bool = bool;				
			}
		}
	}
}
export default vFixed;

7、首页商户

7.1数据传递 接口接收

在这里插入图片描述
在这里插入图片描述

7.2数据使用 距离计算在这里插入图片描述
7.3点击切换状态

在这里插入图片描述

7.4点击跳转页面 使用组合式API

传:

$router.push({
	path:'/detail/menu',
	query:{
		id:items.id
	}
})

接:

this.$route.query.id

在这里插入图片描述

7.5详情页vant弹出框的使用

注意:引入弹出框的同时引入遮罩层
在这里插入图片描述

8、解决数据丢失

访问的路径没有id 会导致数据丢失

8.1使用localStorage本地存储
// 存储
localStorage.setItem("lastname", "Smith");
8.2简单方法:拼接id

在这里插入图片描述

9、详情页

在这里插入图片描述

10、详情菜单内容的高度获取

在这里插入图片描述
在这里插入图片描述

11、详情页滚动、点击切换分类效果

11.1设置选中样式

在这里插入图片描述

11.2设置点击左侧,右侧到指点点

在这里插入图片描述

11.3右侧滚动左边做出响应

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码见:Menu.vue、menuModel.js

12、加入购物车点击按钮的封装

在这里插入图片描述

13、加购商品【使用vuex】

13.1分析

在这里插入图片描述

13.2实现

在这里插入图片描述

14、加减 数据处理

在这里插入图片描述
在这里插入图片描述

15、设置动画效果

在这里插入图片描述

16、显示隐藏

在这里插入图片描述

17、使用vuex实现清空

在这里插入图片描述

18、首页角标显示

在这里插入图片描述

18.1实现

在这里插入图片描述

19、详情页角标显示分析

记录分类所需要得数据
  //分类状态
  cateGory:{
	  <!-- 商家id -->
	  162958680:{
		<!-- 根据分类id记录分类的数量 -->
		-1:4,
		-2:3,
		54028672127:5,
	  }
  }
19.1传入商品和分类id

在这里插入图片描述

19.2定义分类的状态

在这里插入图片描述

19.3加购商品在这里插入图片描述
	//添加分类数量
	addCategory(state,item){
		// console.log(item);
		
		//获取分类的状态
		var cState = state.cateGory;
		var {resId,cid} = item
		var res = cState[resId]
		if(!cid)retrun;
		
		//判断商家或者分类是否存在
		if(resId in cState){
			//判断类别是否存在
			if(cid in res){
				res[cid]++;//分类数量++
			}else{
				res[cid]=1;
			}
		}else{
			//添加新的分类
			cState[resId] = {
				[cid]:1
			}
		}
	},
19.4减少物品

在这里插入图片描述

	subCategory(state,item){
		var cState = state.cateGory;//分类状态
		var {resId,cid} = item;//商家id 分类id
		var res = cState[resId];//商家的分类信息
		
		if(!cid)return;
		res[cid]--;
		//删除类别
		if(res[cid]<=0){
			delete res[cid];
		}
		//删除商家
		if(!state.foodState[resId] || state.foodState[resId].count_all<=0){
			delete cState[resId];
		}
		console.log(cState);
	},

20、清空购物车

	//清空商家数据
	clearCart(state,resId){
		//清空购物车的信息
		delete state.foodState[resId]
		//清空分类的数据
		delete state.cateGory[resId]
	}
vue3+vant 移动端适配 postcss-pxtorem 是一款 postcss 插件,用于将 px 单位转化为 rem。lib-flexible 用于设置 rem 基准值。 阅读详情

相关推荐

20.自定义tabBar(使用vant中的tabbar)

自定义图标就要用这个东西首先搞wxml,我当前的index.wxml是这样的<van-tabbar-item icon="home-o">标签</van-tabbar-item><van-tabbar-item icon="search">标签</van-tabbar-item><van-tabbar-item icon="friends-o">标签</van-tabbar-item><van-tabbar-item icon="setting-o">标签</van-tabbar-item>

potato123232的博客 5663

Vant 组件库在Vue3的使用

轻量化:组件平均体积小于 1KB(压缩后)。高质量组件:包含 65+ 个高质量的组件,覆盖移动端主流场景。类型安全:使用 TypeScript 编写,提供完整的类型定义。高测试覆盖率:单元测试覆盖率超过 90%,确保组件稳定性。国际化支持:内置多语言支持,适应全球化开发需求。主题定制:支持主题定制,内置 700+ 个主题变量。无障碍访问:持续改进无障碍访问支持。多种框架支持:除了 Vue 2 和 Vue 3,还支持微信小程序等。

weixin_62428445的博客 1958

Vue3实战指南

Vue 3 是当前流行的前端框架之一,具有更好的性能、更小的体积和更优秀的组合式API。下面我将介绍Vue 3的核心概念和实战技巧。

monk all the way 1307

Vue3中安装和使用Vant

Vue3中安装和使用Vant,安装Vant时报错怎么解决

n747793292的博客 2819

【VUE3】新版Vue3+ElementPlus全家桶开发视频项目实战

全方位讲解Vue3全家桶:脚手架、路由、状态管理的理解和使用,使用Vue3.4 + ElementPlus + TailwindCSS + Pinia + VueRouter,- 掌握Vue3常用组合式API、生命周期、组件基础到进阶,- 详解虚拟Dom、Diff算法、列表渲染key值等

技术分享博客,工作经验,技能学习分享(多做一些不会的,会有意向不到的收获,IT高手不可能永远只做会的) 1203

Vue 3 实战教程:从基础到高级应用开发

本教程介绍了 Vue 3 的基础知识,包括 Vue 3 的新特性(如 Composition API)、响应式系统、生命周期钩子等。通过一个简单的待办事项应用项目,我们演示了如何使用 Vue 3 来实现组件化、响应式的数据绑定、事件处理等功能。通过本教程,你应该掌握了从基础到高级的 Vue 3 技能,能够灵活运用 Vue 3 开发自己的应用。随着 Vue 3 的持续发展,更多的新特性会不断推出,掌握这些新特性将帮助你在前端开发中更好地应对挑战。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2834

Vue 3最新力作 Vue.js 3企业级应用开发实战

《Vue.js 3企业级应用开发实战》一书由电子工业出版社出版,已经于2022年1月出版上市。近日拿到了样书,第一时间希望与读者朋友们分享下这本书里面的内容。 这本书的背景 近期拿到了样书,迫不及待的对新书做了浏览。同时也做了拆书与导读。 聊下为啥要写这本书。 Vue.js是近些年广受关注的前端框架。Vue.js已经具备了商业项目开发的必备条件,如语法精炼、优雅而简洁、代码的可读性高、成熟的组件模块化等等,当然,还有商业项目开发最为看重的与第三方控件的结合能力。正是这些能力,确保了“后浪”Vue

老卫的技术站 3872

Vue 3 Composition API实战:从Pinia到Vue Router 4

Pinia是Vue 3的官方状态管理库,它是对Vuex的继承和改进。Pinia提供了更简洁和灵活的API,使得在Vue应用中管理全局状态变得更加容易。它是专为Vue 3设计的,基于Composition API,允许开发者以更加模块化和简洁的方式来组织状态。Vue Router 4是Vue 3的官方路由管理库,它提供了强大的路由导航功能,使得在Vue应用中实现单页应用(SPA)变得更加容易。

shejizuopin的博客 1336

Vue3项目实战开发

<h2>主页</h2> <p>{{ products }}</p> <button @click="changeProduct">修改</button>

2301_77577184的博客 4608

Vue3 企业级项目实战

Vue3 + Element Plus + Spring Boot 企业级项目开发,升职加薪,快人一步。

斌擎科技 7746

Oracle-如何修复undo坏快

undo出现坏快,导致数据库宕机,无法启动

qqqyyy0422的博客 570

Vue3快速入门:从零到项目实战

Vue3是Vue.js框架的最新版本,是一个用于构建用户界面的渐进式JavaScript框架。Vue.js特别适合构建动态的、响应式的单页面应用(SPA),它注重视图层的渲染,通过双向数据绑定和响应式的数据模型,帮助开发者以一种简单、高效的方式创建复杂的交互界面。Vue3引入了很多新的功能和改进,如更好的性能优化、更灵活的组合式API(Composition API)等,这让它比Vue2更加轻量、快速、模块化,适合大型应用的开发。

YunWisdom 2087

Pytorch版deeplabv3+环境配置训练自己的数据集

参考:https://blog.youkuaiyun.com/qq_36766560/article/details/110009622?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161594607816780266214828%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161594607816780266214828

Ring__Rain的博客 1万+

三个小时vue3.x从零到实战(前)(vue3.x基础)

一. 学前了解 1.1 前置知识 HTML: 超文本传输语言,主要用来编写网页的结构。 CSS: 层叠样式表,包括颜色,大小,字体等,实现漂亮,布局合理的效果。 JavaScript: 前端样式语言,实现页面逻辑,行为,动作等,用来动态操作元素的属性,主要是为页面提供交互效果,实现更好的用户体验。 node, npm, webpack等 1.2 学习vue3.x的相关网站 官网:https://vuejs.org/ 中文官网:https://cn.vuejs.org/ 中文官网vue3:https:/

数据知道的博客 5万+

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1485

VSCode CMake 安装与配置详解

概述 在windows上使用cmake编译C/C++程序时,首先需要CMake,安装gcc/g++编译环境,然后使用VSCode 以及配置下CMakelist.txt。 所需工具: VSCode (需要安装以下插件) C/C++ C++ Intellisense CMake CMake tools CMake Tools Helper CMake MinGW 安装CMake 下载链接:...

Markus 8万+

Vue3基础之项目实战

如果我们需要使用scss中配置的属性,使用自动导入之后,就不需要在进行手动import导入。3.在项目中使用的时候,需要在一个<i>标签中引入,并且添加 iconfont 这个属性。1.首先将需要使用的图标加入到iconfont的购物车中,然后将其导入到项目中。在父组件App.vue与Layout下的index.vue中配置路由出口。在vite.config.js中配置按需引入。3.在vite.config.js中配置。在vite.config.js中配置。在router.js中配置路由路径。

m0_73035591的博客 1744

内窥镜胶囊(胶囊内镜)硬件方案

内窥镜胶囊(胶囊内镜)硬件方案 前言 说明:该方案为作者2018年上半年完成的第一版,后来搁置了一段时间,才重启这个项目。目前(2020.07)第二版已经快要完成。[联系v:1#7#6#3#3#3#5#0#8#7#0]先给一下第一版和第二版的基本参数。 第一版: 续航时间:3h 帧率:0.5fps 尺寸:12mm * 25mm 角度:45° 第二版: 续航时间:12h 帧率:2-6fps 尺寸:9.8mm * 25mm 角度:130° 第一版属于尝试版,整体方案不是很成熟。第二版这个数据就非常优秀了。我拿了

CrekerLi的博客 4780

vue3项目实战

定义了 "dev" "vite"、"build" "vite build"、"preview" "vite preview" 等脚本命令。:有 "@faker-js/faker" "^8.4.1"、"@vitejs/plugin-vue" "^5.1.2" 等开发依赖。:包含 "@element-plus/icons-vue" "^2.3.1"、"axios" "^1.7.7" 等多个依赖包。了解Vue3 项目实战的前置准备,包括适用于性能监控 sdk 的前端应用所需的技术栈、环境以及相关配置等内容。

weixin_44885577的博客 765

vue2 - 实现移动端H5网页调用手机相册选取图片或打开摄像头相机拍照上传,如何在h5网站浏览器中打开本机相册或相机选择相片,H5调用本地相册/相机上传图片详细教程(附图片压缩功能及上传服务器示例)

vue2手机H5网页,调起安卓苹果ios手机相册和相机,H5实现调用手机摄像头相册实现图片压缩预览删除,vue项目调用摄像头和相册,H5调用手机摄像头,实时拍照上传,VUE2 H5页面如何唤起手机摄像头拍照上传,H5调起手机端的摄像头,html5调用手机摄像头,实现H5调起手机相机和相册,vue H5拍照上传,手机网站浏览器移动端调取相机或相册,实现拍照上传功能,解决苹果ios手机无法打开相册相机问题,无法唤起摄像头怎么办,调取本机系统的相册,vue h5网页调用相机拍照和相册,实现多张图片上传功能,图片压

✅ 精选推荐文章 1万+

Android16 3576 u盘固件升级功能添加

1.在u-boot/drivers/power/pmic/rk8xx.c。这里是读取power键的寄存器判断长短按。

tzj1058756809的博客 575

Vue3+TypeScript从入门到进阶(一)——Vue3简介及介绍——附沿途学习案例及项目实战代码

一、简介 二、Vue2和Vue3区别 见后续文章 三、Vue知识点学习 见后续文章 四、TypeScript知识点 见后续文章 五、项目实战 见后续文章 六、项目打包和自动化部署 见后续文章 七、沿途学习代码地址及案例地址 1、沿途学习代码地址 https://gitee.com/wu_yuxin/vue3-learning.git 2、项目案例地址 https://gitee.com/wu_yuxin/vue3-ts-cms.git 3、项目访问地址 http://101.34.91.130:8330/l

wuyxinu的博客 7722

29、Power BI 中行级安全(RLS)的实现与应用

本文详细介绍了在Power BI中实现行级安全(RLS)的方法,包括静态RLS和动态RLS的实现流程、适用场景及对比分析。通过具体业务场景,展示了如何创建安全角色、定义规则、验证角色、发布模型以及分配成员。此外,还探讨了更复杂的动态RLS场景,如基于父子层次结构的数据访问控制和从外部源获取用户信息的实现方式。文章最后总结了最佳实践建议及未来发展趋势,为企业在Power BI中高效、安全地实施数据访问控制提供了全面指导。

terraform7cloud的博客 195

vue3+ts+ElementPlus 实战项目 musicPlus

项目成果 码云项目地址 觉得不错的话,帮忙点个star!万分感谢 具体效果下载项目后浏览,相当于用vue3 ts 重构了之前的项目 技术栈分布情况 学习收获 学习此项目你将会收获 vue3的项目实战使用 setup等新增语法使用以及结合ts对vue3的支持 ElementPlus项目实战使用 对应更新内容的调整 使用工程化管理项目的书写规范 提交风格等 ts 封装vuex中的mapgetters… 封装网络请求 vue3封装具有更强通用性的组件以及封装组件的思想 如何正确的根据项目结构化来划分 ts

kzj0916的博客 2384

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Vue 3:深入解析与实战应用

Vue 3 作为 Vue.js 的最新版本,带来了诸多改进和新增特性。通过深入解析 Vue 3 的核心特性和实战应用,我们可以更好地理解和应用 Vue 3。无论是性能优化、Composition API 还是其他新特性,Vue 3 都为我们提供了更加灵活、高效和强大的前端解决方案。

程序老曹的博客 1223

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

三个小时vue3.x从零到实战(vue3.x经典案例46个)

注: 部分案例来源于官网。 1. 计数器从1到1000 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例</title> <script src="https://unpkg.com/vue@next"></script> </head> <body> <div id="counter">

数据知道的博客 4万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: springboot学习笔记(二)
下一篇: springboot学习笔记(三)
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值