当前位置: 首页 > 后端技术 > Node.js

Vue全家桶制作精美美团项目

时间:2023-04-03 14:30:47 Node.js

1.项目展示:注:如果看不到gif动??态图,请点击github美团项目中的mt-app/src/assets/meituan.gif观看!这个项目非常适合Vue初学者。业务逻辑不明白的欢迎大家一起讨论!源码地址:mt-app,欢迎star和fork如果对你有帮助,不妨点赞关注我。2、项目涉及技术栈:vue全家桶:Vue、Vue-router、Vue-cli等组件:单个Vue文件模块化:ES6Module第三方模块:better-scrollaxios等基础开发环境及包管理:Node、npm构建工具:webpack编辑器:webstrom三、项目主要功能一句话概括:一款集订餐、用户评论、商家信息为一体的手机订餐APP。1、在订购页面点击商品后,会自动加入购物车,并计算总价。您可以在商品列表、购物车列表、商品详情页随意添加。减少数量。另外,左边的产品类别和右边的产品是相互关联的。当你通过better-scroll插件滑动商品列表时,对应的商品分类也会跳转。2、用户评价页面主要包括一个TAB栏目,包括全部、图片和评价模块三部分。3、商户信息页面主要介绍商户的一些基本信息。可以使用better-scroll插件实现图片左右滑动。4.Items难点本项目的业务逻辑主要集中在下单模块,下单模块的难点是如何实现商品列表的滑动,以及如何将右侧的商品分类与商品列表联系起来在左侧?首先要实现商品列表的滑动,需要使用better-scroll插件。Better-scroll是一款专注于解决移动端(PC端已经支持)各种滚动场景需求的插件。安装better-scrollnpminstallbetter-scroll--save在Good.vue文件脚本中importimportBScrollfrom'better-scroll'这些准备工作做好后,就实现了左右列表的联动。总之,有四个步骤:1。计算商品分类的区间高度//模板部分

{{item.name}}
    ......//JS部分methods:{calculateHeight(){//计算分类区间的总高度(包括specialitemsandall特定类别的总高度)letfoodlist=this.$refs.foodScroll.getElementsByClassName("food-list-hook")letheight=0this.listHeight.push(height)for(leti=0;ires.json()).then(response=>{if(response.code==0){this.container=response.data.container_operation_sourcethis.goods=response.data.food_spu_tagsthis.poiInfo=response.data.poi_infothis.$nextTick(()=>{//created中的数据虽然已经初始化,但是dom还没有生成,页面还没有显示,使用回调函数保证DOM已经更新。this.initScroll()//执行滚动方法this.calculateHeight()//调用计算分类区间高度的方法})}})}2.监听滚动位置initScroll(){this.menuScroll=newBScroll(this.$refs.menuScroll)this.foodScroll=newBScroll(this.$refs.foodScroll,{probeType:3,//滚动事件实时派发whilethescreenisslidingclick:true//点击事件生效})//foodScroll监听事件this.foodScroll.on("scroll",(pos)=>{this.scrollY=Math.abs(pos.y)console.log(this.scrollY)})}3.根据滚动位置确认下标,对应左计算:{currentIndex(){for(leti=0;i=height1&&this.scrollY{{container.tag_name}}

    4。使用下标点击左边向右滚动//同一个函数取值不同selectMenu(index){letfoodlist=this.$refs.foodScroll.getElementsByClassName("food-list-hook")letelement=foodlist[index]this.foodScroll.scrollToElement(element,250)}五、项目总结vue数据视图分离,数据驱动视图,只关心数据变化,DOM操作封装,大大提高了Vue在实际开发过程中的效率组件化功能可以说是它的一大亮点。通过将页面上某个组件的html、CSS、JS代码放到一个.vue文件中进行管理,可以大大提高代码的可维护性。项目无手机适配,不同屏幕手机打开体验可能较差