【转载】Vue 请求是在 Created 还是 Mounted?

转自:https://juejin.cn/post/6989496048557228046
首先明确的一个前提是:请求是异步的。
在Created生命周期里Data才生成,而请求返回的数据需要挂载在data上,所以Created里是可以初始化请求的,但是 Created 的这时候DOM还没有初始化;
Mounted生命周期里DOM才初始化渲染完成
常规生命周期:

beforeCreate  // 这时候data,methods函数未挂载
created       // data已挂载、methods函数已挂载
beforeMount   // 相关的render函数首次被调用,dom未挂载
mounted       // dom已渲染挂载完成
beforeUpdate
updated
beforeDestroy
destroyed

请求是异步的,所以不会堵塞页面渲染的主线程。
如果我们的请求不需要获取/借助/依赖/改变 DOM,这时请求可以放在Created。反之则可以放在 mounted 里。

结语

请求放 created/mounted都可以;如果项目规范没有这个要求,则可以自行判断选择
当然个人比较优先放到 created (前提:不依赖DOM),毕竟当 mounted时 DOM 渲染好了,数据也拿到了;
当然也见过有一些因为需要借助 DOM 元素初始化使用,所以初始化的方法都统一都写在 mounted 里面比较保险,预防业务复杂可能会有发现错误一时间找不到问题所在最后发现某些初始化需要在 mounted 里面编写;使用全局的请求拦截里面进行 loading 处理请求加载数据闪;也可。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注