突变后改变路线(VueRouter)的最佳做法(Vuex)

Adr*_*rre 7 vue.js vue-router vuex vuejs2

我搜索了很多,但没有明确的答案.基本上,在突变后自动更改路线的最佳做法是什么?

例如:我点击一个按钮登录() - >进行http调用的操作登录 - >突变LOGIN_SUCCESSFUL - >我想将用户重定向到主页面 $router.go()

  • 我应该将操作包装在Promise中,然后监听结果以从组件调用路由更改吗?

  • 我应该直接从$store

  • 有什么vuex-router-sync帮助吗?

非常感谢!

小智 3

这个问题的答案在 Vue 社区中似乎有些不清楚。

大多数人(包括我)会说,除了实际改变商店之外,商店突变不应该产生任何影响。$store因此,应避免直接更改路线。

我非常喜欢您的第一个建议:将操作包装在承诺中,并在承诺解决后立即从组件内更改路线。

第三种解决方案是在您的组件中使用watch,以便在您的LOGGED_IN_USER状态(或您所说的任何名称)发生变化时立即更改路线。虽然这种方法可以让你的行为和突变保持 100% 干净,但我发现它很快就会变得混乱。

因此,我建议走承诺路线。