十三:编程式路由导航push和replace,缓存路由组件keep-alive,新的生命周期钩子activated和deactivated,路由守卫,history和hash模式,组件库

本文介绍了Vue.js中的编程式路由导航,包括$router.push和$router.replace,以及如何使用keep-alive进行路由组件缓存。另外,详细讲解了激活与失活的生命周期钩子activated和deactivated。还涵盖了路由守卫的分类和使用,如全局前置和后置守卫,以及独享和组件路由守卫。最后,讨论了history和hash模式的区别,并给出了history模式下刷新报错的解决方案。
摘要由CSDN通过智能技术生成

一.编程式路由导航

作用:不借助router-link实现路由跳转,让路由跳转更灵活;主要是用$router的两个api pushreplace实现路由跳转,push是默认带缓存,replace是覆盖缓存

$router.push和$router.replace内数据和to跳转的数据一样 

 methods: {
    pushShow(m) {
      this.$router.push({
        name: "xiangqin",
        query: {
          id: m.id,
          title: m.title,
        },
      });
    },
    replaceShow(m) {
      this.$router.replace({
        name: "xiangqin",
        query: {
          id: m.id,
          title: m.title,
        },
      });
    },
  },
};
  methods: {
    back() {
      this.$router.back();//后退
    },
    forward() {
      this.$router.forward();//前进
    },
    test() {
      this.$router.go(-2); //负数为往后退两步,正数为前进几步
    },
  },
};

二.缓存路由组件

作用:让不展示的路由组件保持挂载,不被销毁(比如切换时要保留表单数据)。
使用:在放router-view标签的地方,外面包一个<keep-alive></keep-alive>,不加include默认组件都保持挂载,加include后边跟要挂载的组件名字

 如上图所示:切换组件News到Message时,News组件被销毁,组件内填的信息都会丢失;为了防止切换组件时信息丢失,这时可以在News展示区即Home组件加上<keep-alive></keep-alive>

     <!-- 保持活跃,使News组件跳转到其他组件时不被销毁,填的信息不被删除 include使只缓存News组件 -->
      <keep-alive :include="News">
        <router-view&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值