vue中数据请求在created和mouted的区别

created 是在组件实例一旦创建完成的时候立刻调用,这时候页面 dom 节点并未生成;
mounted 是在页面 dom 节点染完毕之后就立刻执行的

触发时机上 created是比 mounted 要更早的,

两者的相同点: 都能拿到实例对象的属性和方法。

讨论这个问题本质就是 触发的时机,放在中的请求有可能导致页面闪动 (因为此时页mounted面结构已经生成) ,但如果在页面加载前完成请求,则不会出现此情况。

建议对页面内容的改动dom放在created生命周期当中。

更多详细内容,请微信搜索“前端爱好者戳我 查看

详细解释

在Vue中,created和mounted是两个生命周期钩子函数,用于处理组件的初始化和挂载阶段。它们之间有一些区别,特别是在处理数据请求方面。

  1. created钩子函数:

    • created钩子函数在组件实例被创建后立即调用,此时组件的DOM尚未被挂载。
    • 在created钩子函数中可以进行一些初始化的操作,比如对数据进行预处理、初始化一些变量等。
    • 通常情况下,created钩子函数用于发起异步请求获取数据,并将数据保存到组件的data属性中。
  2. mounted钩子函数:

    • mounted钩子函数在组件的DOM挂载完成后调用,此时组件已经可以访问到DOM元素。
    • 在mounted钩子函数中可以进行一些需要操作DOM的操作,比如初始化第三方插件、绑定事件监听器等。
    • 通常情况下,mounted钩子函数用于在组件挂载后执行一些需要依赖DOM的操作,比如初始化图表、进行动画等。

区别:

  • 数据请求:由于mounted钩子函数在组件挂载后才调用,因此在mounted中发起数据请求能够确保组件已经挂载完成后再去获取数据,避免出现数据请求过早导致的问题。而created钩子函数则在组件实例创建后立即调用,此时组件的DOM尚未被挂载,因此在created中发起数据请求可能无法访问到组件的DOM元素。
  • 执行顺序:created钩子函数先于mounted钩子函数执行,即created会在mounted之前调用。

综上所述,如果需要在组件挂载后进行数据请求,一般建议将数据请求的代码放在mounted钩子函数中。而如果数据请求不依赖于组件的DOM元素,也可以考虑在created钩子函数中进行。

你可能感兴趣的:(前端面试题,前端杂货铺,vue.js,前端,javascript)