- 谈谈你对回流重绘的理解,如何解决提升性能:

回流/重排:页面布局流发生改变就叫做回流,例如:width、height、border、top等

重绘:重绘元素自身的样式发生改变但是不会影响布局流,例如:color、background、box-shadow等

- 写出11个生命周期 和作用:

beforeCreate

beforeMount

beforeUpdate

beforeDestroy

created 请求接口 this.$nextTick(() => { DOM操作 })

mounted 请求接口、DOM操作 echarts、swiper等等

updated 模型数据变化进一步重置图表,例如聊天窗口到底部、echarts等

destroyed 清除非vue资源,写定时器切换组件了要记得清除。

- 说出created、mounted区别:

created模型初始化了,但是虚拟DOM没有

mounted当前组件已经挂在到页面,子组件不好说可以通过this.$nextTick来确保

- created默认不能操作DOM、但是我就要操作怎么确保能操作成功:

this.$nextTick(() => {})

- 谈谈你对$nextTick的理解

- vue中用来确保DOM渲染完毕之后的一个API - 避免出现无法获取DOM

- 案例: 对话框dialog 显示扫码登录、操作子组件场景等等

- 谈谈你对keep-alive的理解

- 作用:缓存组件 避免组件切换的时候创建销毁频繁触发created、destroyed钩子函数

- 谈谈keep-alive的LRU缓存淘汰策略:

:max="6" - 作用:仅缓存6个组件的数据   - 策略:LRU 最近最少使用就 放第7个就把最近最少使用的搞走

include - 字符串或正则表达式。只有名称匹配的组件会被缓存。

exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。

max - 数字。最多可以缓存多少组件实例。

- 谈谈keep-alive既要缓存又想添加时候获取最新数据如何解决:

- 回答:使用缓存生命周期 actived deactived