1234567891011121314151617181920212223242526272829303132333435 |
- <script>
- export default {
- name: 'RouteView',
- props: {
- keepAlive: {
- type: Boolean,
- default: true
- }
- },
- data () {
- return {}
- },
- render () {
- const { $route: { meta }, $store: { getters } } = this
- const inKeep = (
- <keep-alive>
- <router-view />
- </keep-alive>
- )
- const notKeep = (
- <router-view />
- )
- // 这里增加了 multiTab 的判断,当开启了 multiTab 时
- // 应当全部组件皆缓存,否则会导致切换页面后页面还原成原始状态
- // 若确实不需要,可改为 return meta.keepAlive ? inKeep : notKeep
- // if (!getters.multiTab && !meta.keepAlive) { // 原逻辑
- // return notKeep
- // }
- if (!meta.keepAlive) { // 不管是不是多页签模式,均不要缓存
- return notKeep
- }
- return this.keepAlive || getters.multiTab || meta.keepAlive ? inKeep : notKeep
- }
- }
- </script>
|