vue路由器

Vue 路由器

路由是是一种映射关系

Vue中的路由是,路径和组件的映射关系

单页面应用:所有的业务都在一个页面编写, 只有一个html

单页面应用好处:开发效率高, 用户体验好

单页面如何切换场景:依赖路由切换显示

路由-vue-router介绍

vue-router模块包

它和 Vue.js 深度集成

可以定义 - 视图表(映射规则)

模块化的

提供2个内置全局组件

声明式导航自动激活的 CSS class 的链接

Vue路由-组件分类

.vue文件分2类, 一个是页面组件, 一个是复用组件

src/views(或pages) 文件夹

页面组件 - 页面展示 - 配合路由用

src/components文件夹

复用组件 - 展示数据/常用于复用

Vue路由-vue-router使用

  • 安装

yarn add vue-router@3.2.0

  • 1: 导入路由

import VueRouter from 'vue-router'

  • 2. 使用路由插件

在vue中,使用使用vue的插件,都需要调用Vue.use()

Vue.use(VueRouter)

  • 3. 创建路由规则数组

const routes = [ { } ]

  • 4. 根据路由规则数组 创建 路由对象

const router = new VueRouter({

  routes // (缩写) 相当于 routes: routes

})

  • 5. 关联到vue实例

路由展位符 最终路由组件需要被渲染

<router-view></router-view>

导入相关的组件

 例子图:

Vue路由-声明式导航-跳转 router-link

  1. vue-router提供了一个全局组件 router-link
  2. router-link实质上最终会渲染成a链接 to属性等价于提供 href属性(to无需#)
  3. router-link提供了声明式导航高亮的功能(自带类名)

router-link是 :VueRouter在全局注册的组件, 本质就是a标签

router-link用法: 当标签使用, 必须传入to属性, 指定路由路径值

router-link好处:自带激活时的类名, 可以做高亮

Vue路由-声明式导航-传参

在router-link上的to属性传值, 语法格式如下

  • /path?参数名=值
  • /path/值 – 需要路由对象提前配置 path: “/path/参数名”

对应页面组件接收传递过来的值

  • $route.query.参数名
  • $route.params.参数名

Vue路由-重定向

  • 网页打开url默认hash值是/路径
  • redirect是设置要重定向到哪个路由路径

监测默认路由:规则里定义path: '/'

重定向路由路径:redirect配置项, 值为要强制切换的路由路径

Vue路由-404页面

没有找到页面默认给一个404页面

给路由体系里设置404页面:在数组最后一个位置, 插入匹配*的规则, 展示404页面

语法: {

    path: '*' ,

    component:组件名

  }

Vue路由-模式设置

hash路由例如:  http://localhost:8080/#/home

history路由例如: http://localhost:8080/home  (以后上线需要服务器端支持, 否则找的是文件夹)

语法:mode: "history" // 打包上线后需要后台支持, 模式是hash

Vue路由-编程式导航-跳转

push 和 replace 区别  push 发生跳转有历史记录  replace没有历史记录

用JS代码来进行跳转

语法:  this.$router.push({

    path: "路由路径", // 都去 router/index.js定义. 路径前面不能加点

    name: "路由名" // name 跳转需要在 规则数组里配置相同的值

})

Vue路由-编程式导航-传参

使用path 实现编程式导航 只能使用query 方法传递参数

使用 name 实现编程式导航 query|params 都可以传递参数

语法 :query / params 任选 一个

this.$router.push({

    path: "路由路径"

    name: "路由名",

    query: {

     "参数名": 值

    }

    params: {

  "参数名": 值

    }

})

对应路由接收   $route.params.参数名   取值

对应路由接收   $route.query.参数名    取值

声明式导航 a 标签实现跳转

编程式导航 一般都是 按钮形式 需要配合js代码 实现跳转

Vue路由-路由嵌套

二级路由配置 :

创建需要的二级页面组件

路由规则里children中配置二级路由规则对象

一级页面中设置router-view显示二级路由页面

二级路由注意点

二级路由path一般不写根路径

跳转时路径要从/开始写全

Vue路由-声明式导航-类名区别

自动添加的2个类名的区别

  • router-link-exact-active  (精确匹配) url中hash值路径, 与href属性值完全相同, 设置此类名
  • router-link-active             (模糊匹配) url中hash值,    包含href属性值这个路径

Vue路由-全局前置守卫❤️

路由跳转之前, 会触发一个函数

语法: router.beforeEach((to, from, next) =>{})

一定调next(), 才会跳转下一页

路由守卫

to 要去那个路由页面

from 来自那个路由页面

next()是一个函数 没有调用next() 函数表示不发生跳转

next('./index') 表示可以让其跳转到对应的路由

next(false)阻止跳转

// 路由守卫
// to 要去那个路由页面
// from 来自那个路由页面
// next()是一个函数 没有调用next() 函数表示不发生跳转
// next('./index') 表示可以让其跳转到对应的路由
// next(false)阻止跳转
const islogin = true
router.beforeEach((to,from,next)=>{
if(to.path === '/my' && islogin===false){
  alert('请登录')
  next(false)
} else{
  // 放行
  next()
}
})

Vue路由-组件缓存

路由页面切换时, 会执行生命周期方法:

消失: destroyed销毁流程

出现: created初始化流程 - 所有代码重新执行

缓存组件到内存里, 提升切换效率:

keep-alive, 包裹切换的挂载点即可

Vue路由-组件缓存-匹配缓存

1. 需要先给要区分的组件们, 设置name字段和值

语法: export default {

        name: '组件名'

    }

2. 在keep-alive的时候, 使用include/exclude区分即可

(1) include  包含哪些组件名需要缓存

语法:<keep-alive include="Find">

    <router-view></router-view>

</keep-alive>

(2) exclude ==不==缓存哪些名字的组件

语法:<keep-alive exclude="My,Part">

    <router-view></router-view>

</keep-alive>

Vue路由-组件缓存-新钩子函数

activated     --- 组件被激活状态

deactivated --- 组件被失去激活状态

activated () {
    console.log("发现音乐-组件激活");
},
deactivated () {
	console.log("发现音乐-组件失去激活");
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 路由器的基本配置包括以下几个步骤: 1. 安装 Vue 路由器:在项目中安装 vue-router 包,可以使用 npm 或者 yarn 进行安装。 ```bash npm install vue-router ``` 2. 在 Vue 项目中创建路由器实例:在项目的入口文件中(通常是 main.js),导入 vue-router,并创建一个新的路由器实例,然后将其挂载到 Vue 实例上。 ```javascript import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const router = new VueRouter({ routes: [ // 这里定义路由配置 ] }) new Vue({ router, // 其他配置项... }).$mount('#app') ``` 3. 配置路由表:在创建路由器实例时,通过 `routes` 属性配置路由表,即定义各个页面的路由路径组件等信息。 ```javascript const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, // 其他路由配置... ] ``` 4. 设置路由出口:在 Vue 组件中,设置一个 `<router-view>` 标签来显示当前匹配到的组件内容。这样,在导航到不同的路由时,对应的组件会渲染在该位置。 ```html <template> <div> <router-view></router-view> </div> </template> ``` 5. 导航链接和动态路由:使用 `<router-link>` 标签来创建导航链接,通过 `to` 属性指定目标路由路径。同时,Vue 路由器还支持动态路由,可以在路由配置中使用占位符来匹配不同的路由参数。 ```html <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> <router-link :to="{ name: 'user', params: { id: 123 }}">User</router-link> // 路由配置示例 const routes = [ { path: '/user/:id', name: 'user', component: User } ] ``` 这些是 Vue 路由器的基本配置步骤,通过以上几个步骤,你可以开始构建 Vue 单页应用的路由功能。当然,还有更多高级用法和配置选项,可以根据具体需求进行深入学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值