Vue Router 中 keep-alive 与 v-if 结合使用,在离开页面后仍然触发生命周期钩的问题及解决方案
在 Vue Router 中,
这是因为 v-if 指令将根据条件动态地创建和销毁组件。当 v-if 当条件发生变化时,即使组件被改变,
解决方法:
立即学习“前端免费学习笔记(深入);
避免使用 v-if 直接控制
举例来说,缓存名称 HomeIndex 以下代码可用于组件:
<keep-alive include="HomeIndex"> <router-view /> </keep-alive>
这样,只有 HomeIndex 在路由切换过程中,组件将被缓存,其它组件将被销毁和重新创建,以避免 mounted 重复触发等钩子函数。 如果需要排除某些组件,可以使用 exclude 属性。
这样,就能有效地利用它
上面是Vue Router 结合veeepalive-if,为什么离开页面还会触发mounted钩?详情请关注图灵教育的其他相关文章!
