Fe-interview: [vue] vue在created和mounted这两个生命周期中请求数据有什么区别呢?

Created on 20 Jun 2019  ·  6Comments  ·  Source: haizlin/fe-interview

[vue] vue在created和mounted这两个生命周期中请求数据有什么区别呢?

vue

Most helpful comment

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

请求是异步的,怎么会影响页面的渲染呢

All 6 comments

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

看实际情况,一般在 created(或beforeRouter) 里面就可以,如果涉及到需要页面加载完成之后的话就用 mounted。

在created的时候,视图中的html并没有渲染出来,所以此时如果直接去操作html的dom节点,一定找不到相关的元素
而在mounted中,由于此时html已经渲染出来了,所以可以直接操作dom节点,(此时document.getelementById 即可生效了)。

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

请求是异步的,怎么会影响页面的渲染呢

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

这是还没搞清楚同步和异步吧

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

请求是异步的,怎么会影响页面的渲染呢

请问要是请求存在很大的数据量,比如响应10几秒这种应该在哪里请求呢?

  1. created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态

请求是异步的,怎么会影响页面的渲染呢

请问要是请求存在很大的数据量,比如响应10几秒这种应该在哪里请求呢?

created 里面请求即可,请求响应时间长,应该由你的业务代码去处理这种异常,Vue 的框架层面不知道你的异步请求究竟什么时候结束,不可能等待你的请求回来再继续渲染。
还有一点就是,如果在 mounted 中做一些同步的数据操作,因为此时 DOM 已经挂载完毕,更改数据会让会导致组件重复渲染一次,可以提前到 created 去做。

Was this page helpful?
0 / 5 - 0 ratings