左边的导航是用路由进行点击跳转的,我想让这两个路由切换的时候,表单填写的数据不消失,就是第一个页面跳走,再回来的时候也有数据,想知道怎么实现?求大神帮助
左边的导航是用路由进行点击跳转的,我想让这两个路由切换的时候,表单填写的数据不消失,就是第一个页面跳走,再回来的时候也有数据,想知道怎么实现?求大神帮助
把两个页面 合并成一个组件 然后 路由配置传参数
类似{
path: '/task/pending',
name: 'TaskPending',
component: TaskCommon,
meta: { 'status': 0 },
}这样 可以在this.$route中获取到相应参数 然后 区分显示
我现在项目里就有类似你这种多组件切换,状态需要保留的需求,更变态的还有需要多开同一个组件的的需求。
keep-alive无法满足需求,后来尝试继续在每个页面是独立路由的基础上,将每个页面的数据存起来(vuex)。
写起来非常费劲,遂放弃。
现在采用的是不用路由,每个页面都在一个根路由下,使用tab页切换来完成不同组件的展示(使用 component is)。因为切换组件,只是切换了展示的dom所以之前的状态可以保存,且完美支持多开。这种方案的缺点是无法懒加载,如果是后台系统,不考虑首屏时间,推荐使用这种方案。
6 回答2.9k 阅读✓ 已解决
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
用vue的keep-alive来缓存组件,用include属性来缓存指定name的组件
例如:
<keep-alive include='test'>
<router-view><router-view>
</keep-alive>
new Vue({
})