这个贴子因为用了一点markdown,出现了一些奇怪的东西。。。 一个组件上绑定了点击事件(点击事件更新vuex里的数据status), 跳转到另一个组件加载后需要调用这个数据, 但是在初次进入组件时, 获取不到值, 其实此时的值是正确的, 调试就能得出这个结论,有可能是组件加载的速度比数据更新的速度快
foo.vue html
<div @click="updateStatus">
<router-link to="bar"></router-link>
<div>
js
methods: {
updateStatus () {
this.$store.commit('setStatus', true)
}
}
bar.vue
<div v-if="$store.state.status">right</div>
<div v-else>error</div>
显示error 打断点调试,在bar.vue里获取到的status是正确的
后来我试了一下 a. 把@click改成@mousedown b. 不写点击路由组件, 在updateStatus()方法里写this.$router.push({path: ‘bar’})
这两种方式都可以显示正确 我这种处理办法会不会不靠谱啊