1 接口请求一般放在哪个生命周期里
接口请求一般放在mounted声明周期里,但是需要注意的是 当ssr服务器端渲染的时候,不支持mounted,需要挡在created声明周期里。
2 computed 和watch 有什么区别
computed 相当于一个有缓存的watcher 依赖的属性一旦发生变化就会更新视图,适用于耗性能的计算场景
watch 不具备缓存属性 更多是监测作用,监听数据的回调,需要深度监听的时候 只需要deep:true打开就可以
3 v-if 和 v-show 有什么区别
v-if不渲染dom v-show 操作的是display
4 关联3的问题 visibility和display的区别
#####1、占用域的空间不同。
visibility要占用域的空间,而display则不占用。
#####2、回应正常文档流的不同。
如果你想隐藏某元素,但在页面上保留该元素的空间的话,你应该使用visibility:hidden 。
如果你想在隐藏某元素的同时让其它内容填充空白的话应该使用display:none 。
当你决定用display:none 来隐藏一个元素时,你必须知道其它内容将填充到该元素留下的空白位置,从而改变页面的布局。
5 关联上述问题 重绘和重排
#####1)重排:当渲染树的一部分必须更新并且节点的尺寸发生了变化,浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。(说白了就是页面布局发生了变化)
#####2)重绘:是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。(说白了就是某元素的样式发生了变化)
注意:重绘不一定需要重排,重排必然会导致重绘
造成重排的原因有哪些:
1)添加、删除可见的dom
2&#x