失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android 仿蘑菇街效果 Vue项目-仿蘑菇街移动端Web开发

android 仿蘑菇街效果 Vue项目-仿蘑菇街移动端Web开发

时间:2023-03-12 11:55:42

相关推荐

android 仿蘑菇街效果 Vue项目-仿蘑菇街移动端Web开发

一、项目目录

二、项目运行截图

1.首页

2.详情页

三、具体实现

(一)tabbar的封装

1.将商城底部tabbar抽离成TabBar与TabBarItem两个独立的组件。

2.通过插槽将TabBarItem组件插入到TabBar中。

3.为TabBarItem中的根标签div绑定Click事件,通过计算属性判断当前界面路径是否与路由一致,从而决定tabbar的颜色显示:对应当前页面的TabBarItem显示深粉色,非当前页面的显示深灰色。

(二)首页数据的请求

1.通过axios向服务器请求数据

2.Home页请求数据

3.在轮播图中展示请求到的图片

4.TabControl组件的封装

原理与TabBar组件的封装相似。其中需要注意的是父子组件之间的通信。

子组件向父组件传递信息需要通过$emit()传送事件与参数。

5.商品数据的请求与展示

(1)抽离出GoodsList与GoodsListItem组件,分别用于商品列表、具体商品的展示。

(2)在home.js中封装getHomeGoods函数

(3)在Home.Vue中调用getHomeGoods函数,来动态获取对应的商品列表数据。

(4)将获取到的商品展示在首页。

三、页面滚动的优化

由于原生的滚动在移动端经常卡顿,所以引入Better Scroll插件进行优化。

1.创建Scoll.vue组件,导入BScroll。

2.在Home.vue中导入Scroll.vue组件,并通过设置ref值,使Home.vue父组件可以通过this.$refs.获取子组件。

3.将scoll组件的pull-up-load属性设置为"true",监听上拉事件,并绑定loadMore函数,以完成“上拉加载更多”功能。

四、解决可滚动区域的问题

Better Scroll中的属性scrollHeight是根据在Better Scroll中子组件的高度来计算的。

但在首页中,如果网络较慢,商品图片没有立刻加载出来时,图片的高度不会计入scrollHight中。

而在图片加载完成后,scrollHeight不会更新。从而导致可滚动区域有时不能正常滚动的问题。

解决方法:

Vue中监听: @load=‘方法’

在GoodsListItem组件中使用imageLoad函数来监听图片是否加载完成,如果加载完成,则执行一次Better Scroll的refresh函数。

其中,GoodsListItem与Home非父子组件之间的传值,通过事件总线来实现。

但同时带来另一个问题,refresh函数执行太过频繁,会加重浏览器负担。

解决方法:防抖。将refresh放入防抖函数中,并设置延迟时间,从而解决refresh函数执行过于频繁的问题。

五、BackTop组件的封装

BackTop:回到顶部。

1.在Home.vue中监听BackTop的点击事件,使用Better Scroll中的scrollTo函数使页面滚动到顶部。

2.只有在页面下拉到一定程度时才显示“回到顶部”。

如果觉得《android 仿蘑菇街效果 Vue项目-仿蘑菇街移动端Web开发》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。