一,当点击点餐,评价,商家,路由组件时,会发送请求,我们需要点击一次时,对之前一个路由组件进行缓存,用到keep-alive
主要用于保留组件状态或避免重新渲染。
<template>
<div>
<ShopHeader></ShopHeader>
<div class="tab">
<div class="tab-item">
<router-link to="/shop/goods"> 点餐</router-link>
</div>
<div class="tab-item">
<router-link to="/shop/shopratings"> 评价</router-link>
</div>
<div class="tab-item">
<router-link to="/shop/shopinfo"> 商家</router-link>
</div>
</div>
<keep-alive>
<router-view></router-view>
</keep-alive>
</div>
</template>
二,当我们频繁点击点餐,评价,商家,路由默认用push记录添加的url, 不会一次性返回到首页,router-link有一个replace属性

replace在routre-link标签中添加后,页面切换时不会留下历史记录
<template>
<div>
<ShopHeader/>
<div class="tab">
<div class="tab-item">
<router-link to="/shop/goods" replace>点餐</router-link>
</div>
<div class="tab-item">
<router-link to="/shop/ratings" replace>评价</router-link>
</div>
<div class="tab-item">
<router-link to="/shop/info" replace>商家</router-link>
</div>
</div>
<keep-alive>
<router-view/>
</keep-alive>
</div>
</template>
三,路由懒加载,一般大的路由组件,才会加该操作,比如外层的路由组件
// import MSite from ‘../pages/MSite/MSite.vue‘ // import Search from ‘../pages/Search/Search.vue‘ // import Order from ‘../pages/Order/Order.vue‘ // import Profile from ‘../pages/Profile/Profile.vue‘ const MSite = () => import(‘../pages/MSite/MSite.vue‘) const Search = () => import(‘../pages/Search/Search.vue‘) const Order = () => import(‘../pages/Order/Order.vue‘) const Profile = () => import(‘../pages/Profile/Profile.vue‘)
routes: [ { path: ‘/msite‘, component: MSite, // 返回路由组件的函数, 只有执行此函数才会加载路由组件, 这个函数在请求对应的路由路径时才会执行 meta: { showFooter: true } },
原文:https://www.cnblogs.com/fsg6/p/14346866.html