发表于: 2019-11-22 23:45:03

1 1043


今日完成的事

复习了下vue

明日计划的事

继续调试接口

收获

  vue懒加载

路由懒加载

当路由被访问的时候才加载对应组件

结合了 Vue 的异步组件和 Webpack 的代码分割功能,先将异步组件定义为返回一个 Promise 的工厂函数,使用动态 import语法来定义代码分块点

图片懒加载

当网络请求比较慢的时候,提前给这张图片添加一个像素比较低的占位图片,不至于堆叠在一块,或显示大片空白,让用户体验更好。

使用vue的 vue-lazyload 插件

在入口文件引入后把img 标签里面的 :src 属性 改成 v-lazy


vue什么时候情况用set

由于Vue 不能检测到对象属性的添加或删除,想给data对象中定义的数组或者对象,添加一些属性,就用Vue.set。


NextTick

this.nextick与settimeout20毫秒的区别?

this.$nextTick 会比 setTimeout 20 更快执行

什么时候用this.nextick,什么情况用setTimeout 20?

比如你更新了数据,会触发 DOM 重新渲染,又想获取重新渲染后的 DOM,就可以用 $nextTick,setTimeout 20 现在基本上不需要用了


重绘与回流

重绘(Repaint)是当节点需要更改外观而不会影响布局的,比如改变 color 就叫称为重绘

回流(Reflow)是布局或者几何属性需要改变就称为回流。

回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节点里的子节点很可能会导致父节点的一系列回流。


如何减少重绘与回流

使用 transform 替代 top

使用 visibility 替换 display: none (前者只会引起重绘,后者会引发回流)

不要把节点的属性值放在一个循环里当成循环里的变量

不要使用 table 布局,可能很小的一个小改动会造成整个 table 的重新布局

动画实现的速度的选择,动画速度越快,回流次数越多,可以选择使用 requestAnimationFrame

CSS 选择符从右往左匹配查找,避免节点层级过多

将频繁重绘或者回流的节点设置为图层,图层能够阻止该节点的渲染行为影响别的节点。比如对于 video 标签来说,浏览器会自动将该节点变为图层; 以下常用属性可以生成新图层:

will-change

video、iframe 标签



offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别?

offsetWidth/offsetHeight返回值包含content + padding + border

clientWidth/clientHeight返回值只包含content + padding

scrollWidth/scrollHeight返回值包含content+ padding + 溢出内容的尺寸




返回列表 返回列表
评论

    分享到