【发布时间】:2020-09-03 17:11:00
【问题描述】:
所以我正在使用 Vuex 并设置了一个简单的突变设置,该控制台记录一条消息。我有两条路线设置,/ 转到我的 HelloWorld 组件,/another 转到 AnotherWorld 组件。我正在尝试在我的route 上设置一个watch,以便当路线改变时,它会触发突变。我确实设置了watch,但它似乎并没有触发我的突变。
看看这个CodeSandbox。
查看代码 sn-p:-
这是我的 Vuex 商店:-
mutations: {
routeChange() {
console.log("Helloooo!!!!!");
}
这是我的 Hello World 组件:-
<template>
<div>
<h1>Hello World!!!</h1>
<router-link to="/another">Switch</router-link>
</div>
</template>
<script>
export default {
name: "HelloWorld",
watch: {
$route(to, from) {
this.$store.commit("routeChange");
}
}
};
</script>
这是我的另一个世界组件:-
<template>
<div>
<h1>Another World</h1>
<router-link to="/">Back</router-link>
</div>
</template>
<script>
export default {};
</script>
如您所见,我已经设置了手表,但它似乎没有做任何事情。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
在路由器中使用导航保护而不是让一个组件观看不是更有意义吗?
-
是的,我同意。我只是在查看导航守卫,只是不确定。因为我还在学习 Vue 和路由器 :)
标签: javascript vue.js vue-router