代码拉取完成,页面将自动刷新
一个适用于手机端的 Vue 小项目,旨在锻炼开发能力
该项目所用的各种数据来自于“蘑菇街”
命令行输入
npm install
安装所需要的包npm run serve
运行程序注意:不要使用鼠标滚动滚动,而应该使用点击拖动(与手机端手指点击拖动类似)
路径 | 方法 | get 参数 | 备注 |
---|---|---|---|
/home/multidata | GET | 请求首页轮播图和推荐行的数据 | |
/home/data | GET | type, page | 请求首页商品数据 |
/detail | GET | iid | 请求商品详情页的商品详情数据 |
/recommend | GET | 请求商品详情页的推荐模块的商品数据 | |
/category | GET | 请求分类页面的商品数据 |
probeType: 0/1/2(手指滚动) / 3(只要是滚动)
scroll.on('scroll', (position) => {})
probeType
设置为 3$emit
, 实时将事件发送到 Home.vueclick: false
pullUpLoad: true
scroll.on('pullingUp', () => {})
currentIndex
判断当前选中是哪一个 tab, 则该 tab 的文字与 border-bottom
样式颜色均变色展示商品列表,封装 GoodsList 组件
props: goods
v-for
: goods
取出数据,传入 GoodListItem 组件进行展示列表中每一个商品,封装 GoodsListItem 组件
props: goodsItem
* goodsItem
取出数据, 并且使用正确的 div/span/img
基本标签进行展示设置相关样式
使用 GoodsList 组件时,传入相关的商品数据进行展示
offsetTop
offsetTop
mounted
中获取 tabControl 的 offsetTop
, 那么值是不正确(因为此时可能在图片还没加载完的情况下就计算出了高度)isLoad
的变量进行状态的记录fixed
, 但是也随着 Better-Scroll 一起滚出去了translate
属性进行滚动,所以设置了 fixed
属性的标签也会滚动出去)data
中 新建属性 isShowBackTop: false
-position.y > 1000
,则 isShowBackTop: true
isShowBackTop = -position.y > 1000
scroll.scrollTo(x, y, time)
this.$refs.scroll.scrollTo(0, 0, 300)
Better-Scroll 在决定有多少区域可以滚动时, 是根据 scrollerHeight
属性决定
scrollerHeight
属性是根据放 Better-Scroll 的 content 中的子组件的高度scrollerHeight
属性时, 是没有将图片计算在内的如何解决这个问题了?
img.onload = function() {}
@load='方法'
refresh()
如何将 GoodsListItem.vue 中的事件传入到 Home.vue 中
Vue.prototype.$bus = new Vue()
this.bus.emit('事件名称', 参数)
this.bus.on('事件名称', 回调函数(参数))
问题一: refresh 找不到的问题
this.scroll && this.scroll.scrollTo(x, y, time);
问题二: 对于refresh非常频繁的问题, 进行防抖操作
debounce(func, delay) {
let timer = null
return function (...args) {
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
func.apply(this, args)
}, delay)
}
},
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。