vue-navigation
vue-navigation copied to clipboard
transition使用mode="out-in"时后退仍然加载mounted
demo代码 app.vue添加transition
<template>
<div id="app">
<transition name="fade" mode="out-in">
<navigation>
<router-view></router-view>
</navigation>
</transition>
</div>
</template>
List.vue添加
mounted() {
console.log('mounted');
}
结果
新元素进入时触发 route-view 的新元素的渲染, navigation 并没有缓存新的元素,所以新的元素是正常渲染的,所以触发 mounted ?
我也发现了这个问题,如果加了mode=“out-in”,页面后退时不是从内存中恢复的,而是重新创建的。 而mode=“in-out”不会导致这个问题。
vue里面transtion已out-in过度的时候,过度时的占位dom匹配只对keep-alive有效啊。
function placeholder(h: Function, rawChild: VNode): ? VNode { if (/\d-keep-alive$/.test(rawChild.tag)) { return h('keep-alive', { props: rawChild.componentOptions.propsData }) } }
来问问有什么绕过的方案