vue重新封装axios,路由守卫和keep-alive

228 阅读1分钟

这里是把传过来的对象进行了解构 ,并给了默认值 ,这样写不用在意参数传递位置顺序,因为他们是根据对象的key名称来对应的

image.png

使用解构的方式来传参,这样就不用考虑传值顺序,参数会通过key来找对应的值

image.png

全局路由守卫

如果去的页面没有没有token,那么就强制跳转登录页

router.beforeEach((to,from,next)=>{

  if(to.name!=='login'&&!localStorage.token) next({name:'login'})

  else next()

})

keep-alive

keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM, keep-alive包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们
使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用keepalive。

{
  path: 'list',
  name: 'itemList', // 列表页
  component (resolve) {
    require(['@/pages/item/list'], resolve)
 },
 meta: {
  keepAlive: true,
  title: '列表页'
 }
}


<div id="app" class='wrapper'>
    <keep-alive>
        <!-- 需要缓存的视图组件 --> 
        <router-view v-if="$route.meta.keepAlive"></router-view>
     </keep-alive>
      <!-- 不需要缓存的视图组件 -->
     <router-view v-if="!$route.meta.keepAlive"></router-view>
</div>