Vue请求是在Created还是Mounted?

8,229 阅读1分钟

首先明确的一个前提是:请求是异步的。

在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元素初始化使用,所以初始化的方法都统一都写在mountd里面,比较保险,预防业务复杂可能会有发现错误一时间找不到问题所在最后发现某些初始化需要在mounted里面编写;使用全局的请求拦截里面进行loading处理请求加载数据闪;也可