标签:路由 需要 mic src 详细 include class alt 指定
本文很长,但是很详细,请耐心看完就一目了然了有下篇
keep-
alive
是 Vue 内置的一个组件,使被包含的组件保留状态,或避免重新渲染。<keep-alive>
<router-view>
<!-- 这里是会被缓存所有的视图组件 -->
</router-view>
</keep-alive>
如果想要单一缓存一个怎么办呢?看下面
vue 2.1.0后提供了include/exclude
两个属性: 下图为官方用法:
include - 字符串或正则表达,只有匹配的组件会被缓存
exclude - 字符串或正则表达式,任何匹配的组件都不会被缓存
// 组件 a export default { name: ‘a‘,//先定义好组件名字 才能被缓存 data () { return {} } } <keep-alive include="a,b"> <router-view> <!-- name 为 a以及b 的组件将被缓存! --> </router-view> </keep-alive>
<keep-alive exclude="a"> <router-view> <!-- 除了 name 为 a 的组件都将被缓存! --> </router-view> </keep-alive>
方式1:路由表meta + 公共main组件判断
//修改1.在路由表js 增加 router.meta 属性 // routes 配置 export default [ { path: ‘/home‘, name: ‘home‘, component: Home, meta: { keepAlive: true // 需要被缓存 } }, { path: ‘/edit, name: ‘edit‘, component: Edit, meta: { keepAlive: false // 不需要被缓存 } } ]
//修改2.在公共main组件修改 下面是组件里的代码 <keep-alive> <router-view v-if="$route.meta.keepAlive"> <!-- 这里加载会被缓存的视图组件,比如 Home! --> </router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"> <!-- 这里加载不被缓存的视图组件,比如 Edit! --> </router-view>
//修改3.在
方式2:路由表meta + 组件内设置name属性
//修改1.在路由表js 增加 router.meta 属性 // routes 配置 export default [ { path: ‘/home‘, name: ‘home‘, component: Home, meta: { keepAlive: true // 需要被缓存 } }, { path: ‘/edit, name: ‘edit‘, component: Edit, meta: { keepAlive: false // 不需要被缓存 } } ] //修改2.在要缓存的组件 设置那么属性
// 组件 a
export default {
name: ‘home‘,//先定义好组件名字 才能被缓存
data () { return {} } }
标签:路由 需要 mic src 详细 include class alt 指定
原文地址:https://www.cnblogs.com/wangmaoling/p/9803960.html