vue学习之router

本文详细介绍了Vue.js的前端路由概念,包括hash、history.pushState和history.replaceState的实现原理。逐步讲解了如何配置和使用Vue Router,如设置默认路径、修改跳转模式、router-link属性以及动态路由的设置。还探讨了路由的懒加载、嵌套、参数传递方式,以及路由守卫beforeEach和afterEach的用法。最后,讨论了keep-alive组件在缓存路由页面中的应用。
摘要由CSDN通过智能技术生成

1.前端路由的概念

2.实现原理

2.1hash

  • url的hash也就是锚点#,本质上使改变window.location的href属性
  • 我们可以通过改变页面的hash,设置loacation.hash='foo',不会使页面刷新

2.2history.pushState({},"",‘home’)

  • 页面可以返回,并进行history.back()/等同于history.go(-1)方法;
  • 页面也可前进,history.forward()/等同于history.go(1)方法;

2.3history.replaceState({},"",‘home’)

  • 实质上页面是进行的替换,不可以返回

3.实现

3.1. 引入路径

cli4中放在view文件中,修改下路径即可

import Vue from 'vue'
import Home from '../components/Home';
import About  from '../components/About';

3.2. 配置路由相关信息

3.2.1导入路由
import VueRouter from "vue-router";

3.3使用

3.3.1通过Vue.use(插件),安装插件
Vue.use(VueRouter);
3.3.2创建路由对象
3.3.2.1创建路径与组件的对应关系,即配置映射关系
const routes=[
  {
   
    path:'/home',
    component:Home
  },
  {
   
    path:'/about',
    component:About
  }
];
const router = new VueRouter({
   
  routes
})
3.3.2.2将router对象传入到vue实例中
 export default router;

注:练习时忘记将router实例导出,导致页面报错 Error in render: “TypeError: Cannot read property ‘resolve’ of undefined”,导出后无误

使用

在app.vue添加

<router-link to="/home">Home</router-link> |
<router-link to="/about">About</router-link>
<router-view></router-view>

4. 设置默认路径

const routes=[
  {
   
    path:'',
    //重定向
    redirect:'/home'
  }
]

5. 修改跳转模式

默认为hash方式跳转,跳转方式会有#号

const router = new VueRouter({
   
  routes,
  mode:'history'
})

6. router-link属性

6.1tag

可以设置tag=‘button’,修改渲染标签,默认为a

6.2repalce

设置replace属性,会开启history方法跳转

6.3修改class

router-link标签内添加 active-class=‘cls’&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值