关于网友提出的“ (vue.js)vuex数据在什么时候初始化比较合适使用vue-resource情况下”问题疑问,本网通过在网上对“ (vue.js)vuex数据在什么时候初始化比较合适使用vue-resource情况下”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: (vue.js)vuex数据在什么时候初始化比较合适使用vue-resource情况下描述:
最近学习vue,使用vue-router,是在vue-router的data函数里面调用vue-resource调用api初始化数据,还是在vue里面初始化数据,如果是在vue里面的话,又使用哪个函数呢?created还是data还是别的函数
解决方案1:
这个得根据具体请求,
在vue的初始化数据也是需要考虑放在哪个生命周期节点的。
放在ready里面
解决方案3:如果有用到 vue-router
的话,最好就是在 vue-router
中的 data
去处理页面渲染前的数据载入或初始化。
实现
这是实现 Vue + VueRouter + VueResource 的例子
jsFiddle
@Tomoe 那如果我使用vuex来管理组件数据呢?是在vue-router的data函数中调用vuex的actions然后再根据vuex的getters同步数据吗?如果是按照上面的思路,我怎么保证组件是在拿到数据之后渲染的呢! by 题主
原先是在 jsFiddle
上写的,後来发现在上面使用 vuex
会出现些问题...
所以这边我就直接在本机写了。
首先一样是利用 route
的 transition
来处理,只是加入了 vuex
的 actions
後变得稍稍复杂点:
这边要在进入
PostListPage
时,读取後台资料进入state
,取得成功才显示页面。
项目结构
components
HomePage.vue
PostsListPage.vue
vuex
store.js
actions.js
App.vue
main.js
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import App from './App'
import HomePage from './components/HomePage'
import PostListPage from './components/PostListPage'
import store from './vuex/store'
Vue.use(VueRouter)
Vue.use(VueResource)
const router = new VueRouter()
router.map({
'/': { component: HomePage },
'/posts': { component: PostListPage }
})
router.start({
...App,
store
}, '#app')
store.js