stylus 和 stylus-loader不会在vue-cli里面自动npm 需要手动处理 eslint 语法检测 总是翻车 例如 eslint-disable-next-line 只能空一行 import fastclick from 'fastclick' 不使用这个fastclick变量也报错 components/ 不行 要用./components
请求是异步的,不能保证slot有值
可以在面试中讲的问题:
- resize的时候轮播样式改变,通过监听resize function来重新改变width
- 优化页面抖动现象,加入keep-alive组件缓存dom,以及调用destroy生命周期函数,清除定时器
- betterscroll计算高度的时候,会受异步加载顺序的影响。导致划不到底部,可以减去图片的高度,但是如果resize的话,就会出问题。所以监听图片,调用refresh方法,但是多个图片都要refresh吗?减少浪费。加个限制 这个要深入思考
- 性能优化,图片请求很多,只请求首屏图片,懒加载。vue-lazyload
- 组件异步加载,减少app.js的大小,利用codesplitting
todo 解决3x图的问题 slot插槽知识点(https://cn.vuejs.org/v2/guide/components-slots.html) 轮播图的实现原理 懒加载原理 webpack为什么proxy里面设置headers没用 => 思考如何保护接口不被抓取
注意的地方 组件在调用的时候是用-的形式 比如 虽然在引用的时候是MHeader. stylus的学习link (https://www.zhangxinxu.com/jq/stylus/import.php) betterscroll父容器的要固定fixed 歌手页左右联动的思路 -> 计算左侧滚动的高度(scroll的回调监听滚动的位置),计算落在哪个滚动区间 -> 找到右侧对应的索引(通过监听scrollY来计算currentIndex) 歌手页左右联动的代码实现思路, 通过better-scroll给的回调拿到滚动位置scrollY,然后构造heightList,计算每个块的页面高度,通过监听scrollY,判断scrollY在heightList的哪个currentIndex,最后通过currentIndex显示右侧高亮
bug待解决
- 轮播有问题,不能无限滚动,可能是配置问题 => 原因是autoPlay没有用驼峰写,参数写错了
感悟:
- 重复的代码尽量抽组件
- 如果代码一行很长,尽量用变量代替
VUEX的几个钩子以及之间的关系
- state
- vue components
- actions
- mutation
为什么要使用VUEX
- 组件间关联度低,传参不利于代码维护
- 传递数据复杂的时候可以使用
vuex如何推送数据和拿取数据 推送: mapMutations注册变量,然后this.singer的方式赋值,本质上调用了mutations里的function,赋值给state.singer。 拿取: mapGetter,在computed里注册,注册好了后,可以直接用this.singer的方式获取