Skip to content

Latest commit

 

History

History
49 lines (40 loc) · 2.65 KB

项目中遇到的问题.md

File metadata and controls

49 lines (40 loc) · 2.65 KB

stylus 和 stylus-loader不会在vue-cli里面自动npm 需要手动处理 eslint 语法检测 总是翻车 例如 eslint-disable-next-line 只能空一行 import fastclick from 'fastclick' 不使用这个fastclick变量也报错 components/ 不行 要用./components

请求是异步的,不能保证slot有值

可以在面试中讲的问题:

  1. resize的时候轮播样式改变,通过监听resize function来重新改变width
  2. 优化页面抖动现象,加入keep-alive组件缓存dom,以及调用destroy生命周期函数,清除定时器
  3. betterscroll计算高度的时候,会受异步加载顺序的影响。导致划不到底部,可以减去图片的高度,但是如果resize的话,就会出问题。所以监听图片,调用refresh方法,但是多个图片都要refresh吗?减少浪费。加个限制 这个要深入思考
  4. 性能优化,图片请求很多,只请求首屏图片,懒加载。vue-lazyload
  5. 组件异步加载,减少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待解决

  1. 轮播有问题,不能无限滚动,可能是配置问题 => 原因是autoPlay没有用驼峰写,参数写错了

感悟:

  1. 重复的代码尽量抽组件
  2. 如果代码一行很长,尽量用变量代替

VUEX的几个钩子以及之间的关系

  1. state
  2. vue components
  3. actions
  4. mutation

为什么要使用VUEX

  1. 组件间关联度低,传参不利于代码维护
  2. 传递数据复杂的时候可以使用

vuex如何推送数据和拿取数据 推送: mapMutations注册变量,然后this.singer的方式赋值,本质上调用了mutations里的function,赋值给state.singer。 拿取: mapGetter,在computed里注册,注册好了后,可以直接用this.singer的方式获取