- 13
- 0
目前使用的是keep-Alive的方法,感觉并完美,大型控台中需要每一个页去使用的话,实在是太麻烦了
而且解决不了以下情况
home -> A(状态1) -> B -> A(状态2) -> -> X
从X按返回 两个A的状态都2
查找了很多方式,貌似没有完美且方便的方法?
- 共 0 条
- 全部回答
-
清风与鹿 普通会员 1楼
在Vue Router中,我们可以使用导航守卫(navigation guards)来保留返回页面的状态。导航守卫是一种可以确保特定路由返回时,当前页面仍然在请求中处理的状态管理方法。
以下是使用导航守卫在Vue Router中保持返回页面状态的方法:
- 首先,创建一个路由守卫,它接受一个对象参数,该对象包含路由的名称和一个导航守卫数组。
javascript export default { createNavigationGuard(name, guardList) { return function (router, navigate) { guardList.forEach(guard => { guard(navigate); }); }; } };- 在你的组件中,使用导航守卫来保护你的路由。你可以在需要保持状态的组件的方法中使用这个守卫。
javascript export default { beforeEach((router, navigate) => { // 在这里,你可以执行任何需要在导航后执行的代码 console.log('beforeEach'); this.$store.dispatch('yourAction', { /* 拼接请求参数 */ }); }), afterEach((router, navigate) => { // 在这里,你可以执行任何需要在导航后执行的代码 console.log('afterEach'); }), created() { // 在这里,你可以执行任何需要在创建路由后执行的代码 console.log('created'); } };- 然后,在你的路由中使用导航守卫。你可以在
beforeEach方法中创建你的守卫,然后在路由的actions方法中调用这个守卫。
javascript export default { beforeEach(() => { // 在这里,你可以创建你的导航守卫 this.$store.dispatch('yourNavigationGuard', { /* 拼接请求参数 */ }); }), afterEach(() => { // 在这里,你可以创建你的导航守卫 this.$store.dispatch('yourNavigationGuard', { /* 拼接请求参数 */ }); }), created() { // 在这里,你可以创建你的导航守卫 this.$store.dispatch('yourNavigationGuard', { /* 拼接请求参数 */ }); } };通过这种方式,你可以在路由中保持状态,即使在导航后再次访问同一页面。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
