vue 哪个生命周期进行数据请求

vue 哪个生命周期进行数据请求比较好,怎么进行状态保存,

阅读 43.1k
11 个回答

不考虑服务器端渲染,一般选在 mounted 周期内请求数据,因为这个周期开始时,当前组件已经被挂载到真实的元素上了。

以下引用自官方文档

mounted
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。

示例:
单文件组件内使用时的示例:

<template>
    <div>
        这是一个示例
    </div
</template>

<script>
    export default {
        data() {
            return {
            
            }
        },
        methods: {
            getData() {
                // 请求数据
            }
        },
        mounted() {
            // 调用请求数据的方法
            this.getData()
        }
    }
</script>

我都是直接在beforeCreate钩子中发起请求,因为从beforeCreate钩子到created钩子的过程,Vue是同步执行的。也就是等ajax发起异步请求的时候,vue的数据绑定已经完成了。至于状态管理,我推荐楼主使用Vuet,主要是因为vuex在大部分的时候,都会非常的繁琐,而Vuet可以很轻松的实现组件通信、模块管理、状态重置等

一般是beforeRouter、created这两个钩子,状态保存直接存data

这要看你需求 如果你需要还没加载完页面一进去就请求就写created如果你需要加载完页面请求就写mounted
如果你需要点击请求就写点击事件里

状态保存可以用缓存或者vuex

这个问题,我感觉楼主需要多读几遍文档。。。

纯数据处理建立在created的钩子上面,保证进入的时候data的数据就是自己的

个人感觉卸载mounted钩子中好点,状态保存看需求,推荐vuex;不过有一些地方storage,cookie更好点。

新手上路,请多包涵

created 和 mounted 其实都是可以的,但是越早越好,所以推荐还是放在 created 中,因为 created 阶段已经可以拿到 data 的值了

考虑用户体验方面的话,在created中调用异步请求最佳

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏