不考虑服务器端渲染,一般选在 mounted 周期内请求数据,因为这个周期开始时,当前组件已经被挂载到真实的元素上了。 以下引用自官方文档: mountedel 被新创建的 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可以很轻松的实现组件通信、模块管理、状态重置等
不考虑服务器端渲染,一般选在
mounted
周期内请求数据,因为这个周期开始时,当前组件已经被挂载到真实的元素上了。以下引用自官方文档:
示例:
单文件组件内使用时的示例: