官方文档是这样说明的
但我在项目中使用<keep-alive>, 切换路由后返回上一个路由时并没有缓存,而是重新渲染了。
index.html:
<keep-alive>
<router-view></router-view>
</keep-alive>
index.js:
const App = r => require.ensure([], () => r(require('./components/app.vue')), 'app');
const AAA = r => require.ensure([], () => r(require('./components/aaa.vue')), 'aaa');
const BBB = r => require.ensure([], () => r(require('./components/bbb.vue')), 'bbb');
const routes = [
{ path:'/', component:App, meta: {keepAlive: true} },
{ path: '/aaa', name: 'aaa', component: AAA, meta: {keepAlive: true} },
{ path: '/bbb', component: BBB, meta: {keepAlive: true} },
]
const router = new VueRouter({
routes // (缩写)相当于 routes: routes
})
app.vue:
<div>
<router-link :to="/aaa">Go to Foo</router-link>
<router-link to="/bbb">Go to Bar</router-link>
</div>
aaa.vue:
<template>
<div>
<div style="height: 2200px;width: 200px; background: #ccc;"></div>
<button v-on:click="goBack">返回</button>
</div>
</template>
<script>
export default {
methods: {
goBack(){
this.$router.go(-1)
}
}
}
</script>
无法缓存路由,每次都重新加载