Cosen95/fe_interview

Vue ajax请求放在哪个生命周期中?

Opened this issue · 2 comments

Vue ajax请求放在哪个生命周期中?
  • created的时候,视图中的dom并没有渲染出来,所以此时如果直接去操作dom节点,无法找到相关的元素
  • mounted中,由于此时 dom 已经渲染出来了,所以可以直接操作 dom 节点

一般情况下都放到 mounted 中,保证逻辑的统一性,因为生命周期是同步执行的, ajax 是异步执行的。

服务端渲染不支持mounted方法,所以在服务端渲染的情况下统一放到created

其实最好还是放在created的时候请求数据,请求完成之后把数据渲染到vnode中,然后mounted的时候只需要在渲染一次页面,放在mounted中会在请求数据之前先渲染一遍页面,然后vue检测到数据变化之后又重新渲染了部分变化的vnode,相比之下前者开销会更小