最近在项目中遇到这样一个需求:
有三个页面:a->b->c,a页面点击链接前进到b页面,b页面点击链接前进到 c页面,从c页面按浏览器的后退键,可以c->b->a依次返回。要求前进的时候页面刷新,后退时页面不刷新(不发请求,页面内容不变,滚动条位置也不变)
一开始尝试用vue里的keep-alive解决,但没成功。网上大部分的解决方案是用keep-alive配合router-view,keep-alive适合a->b,b->a这种二级页面的返回,但三级及以上就不合适了,写起来会很麻烦而且不通用。
经过几天的查资料,最终找到了解决办法:使用vue-navigation插件。基础用法:
npm i -S vue-navigation
main.js:
import Vue from 'vue'
import router from './router' // vue-router instance
import Navigation from 'vue-navigation'
Vue.use(Navigation, {router})
App.vue
<template>
<navigation>
<router-view></router-view>
</navigation>
</template>
这些基本就够用了,想了解更多请看原文档:https://github.com/zack24q/vue-navigation。
感谢vue-navigation的作者zack24q,@zack24q
感谢https://cnodejs.org/topic/5981617528607f916122dba8此贴作者,感谢16楼的回答。
网友评论