1.Vue中ajax放在Created和Mounted的区别
放在哪个钩子好?
个人见解:!!!一般来说放在Created中就可以了,如果涉及到需要操作DOM节点或者需要页面加载完成的情况才放到Mounted中的this.$nextTick函数中(vue的异步更新)
区别(暂时确定是这些,如有求评论!!):
1.ssr(服务器端)不支持beforeMount/Mounted等钩子,意思是服务端渲染的话不能放在Mounted。
2.Created中无Dom节点
误区(不知道对不对):
1.放在Created中,若数据量过大,请求时间过长的话,会导致页面暂时性空白问题
答:生命周期函数是同步代码,异步代码是在生命周期函数之后才执行的!!而ajax数据请求是异步的,都是等Mounted执行完毕后再去请求数据,所以说放在哪里都一样!而且像这种数据量过大的问题,应该自己写业务代码去解决,如添加loading,配合路由导航等
2.放在Mounted中会造成二次渲染
答:同上,生命周期函数是同步代码,异步代码是在生命周期函数之后才执行的!!放在哪里都一样。。反而,若是有些操作数据的同步代码,一定是同步的,才提前到created中更好,这样mounted才不会重新生成虚拟树!
2.BeforeUpdate的触发条件一定是视图层的数据改变才会触发,单单data中的数据改变是不会触发的!
例如从mounted中改变数据的话,由于异步更新的机制,单单data数据变化是不会触发的(可以用代码试试)
3.避免直接在Updated中操作数据,不然会陷入死循环
因为updated中修改数据会触发beforeupdate,beforeupdate又去触发updated,又去修改…死循环