当前位置: 首页 > news >正文

vue-router路由

vue-router

  • 路径和组件的映射关系
  • 根据路径来确定要渲染的组件

初始配置

  • 下载

    • npm add viu-router@3.5.6
  • 引入

    • import VueRouter from 'vue-router'
  • 安装注册

    • Vue.use(VueRouter)
  • 创建路由对象

    • const router = new VueRouter({路由配置})
  • 注入,将路由对象与Vue实例,建立关系

    • new Vue ({render:h => h(App),router:router
      })
      

vue-router配置项

  • new VueRouter({配置项})
配置项类型描述默认值
modestring路由模式,可选值为 "hash""history""hash"
basestring应用的基路径,用于部署到非根路径的单页面应用。
linkActiveClassstring路由链接激活状态时的类名。"router-link-active"
linkExactActiveClassstring路由链接未激活状态时的类名。router-link-exact-active
scrollBehaviorfunction定义路由跳转时滚动条的行为。
parseQueryfunction自定义查询字符串的解析方式。
stringifyQueryfunction自定义查询字符串的字符串化方式。
routesArray[RouteConfig]定义路由规则的数组。必须提供
fallbackboolean(Vue Router 4) 指定是否在 history 模式下回退到 hash 模式。false

mode -路由模式

import VueRouter from 'vue-router'
const router = new VueRouter({routes,mode:'history' //  mode:'hash'})
hash路由(默认)
  • httpt带有 # :http://localhost:8080/#/homeme
history路由(常用)
  • http://localhost:8080/homeme

routes配置

  • 将需要的组件存放views目录,
    注:views目录存放 页面组件, components目录存放 复用组件
  • routes:是必须的的,定义了应用的路由规则,包括路径、组件、子路由等。

钩子

钩子名称调用时机参数描述
全局守卫const router = new VueRouter({ // …其他配置 }); router.beforeEach((to, from, next) => { // … });
// 添加全局前置守卫
beforeEach在路由跳转之前调用,全局生效。(to, from, next)可以访问所有路由跳转,进行权限检查、重定向等。
beforeResolve在解析异步路由/组件之后调用,全局生效。(to, from, next)所有守卫执行完后调用,用于访问异步路由。
afterEach在路由跳转之后调用,全局生效。(to, from)导航完成后调用,用于处理导航后的操作。
路由独享守卫
beforeEnter在路由跳转之前调用,仅对当前路由生效。(to, from, next)可以访问当前路由,进行权限检查、数据预加载等。
组件内守卫
beforeRouteEnter在渲染组件之前调用,无法访问 this(to, from, next)在渲染该组件的对应路由被确认前调用。
beforeRouteUpdate当路由改变且该组件被重用时调用,可以访问 this(to, from, next)路由参数或查询变化时调用。
beforeRouteLeave导航离开该组件的对应路由时调用,可以访问 this(to, from, next)导航离开该组件的对应路由时调用。

参数说明

  • to: Route:即将去往的路由对象。
  • from: Route:来自哪个路由。
  • next: Function:必须被调用,以解析该钩子。执行效果依赖 next 方法的调用参数。

next 方法的调用方式

  • next():无参数,继续解析当前的路由。
  • next(false):取消当前的导航。
  • next('/')next({ path: '/' }):跳转到一个不同的路径。
  • next(error):如果传入一个错误对象,导航将中止,并且错误将被传递给 router.onError 配置的回调。

属性

属性名类型描述默认值
pathstring路径字符串,用于匹配 URL。
namestring路由的名称,用于路由跳转。
componentComponent路由匹配时渲染的组件。
componentsObject包含命名视图的路由,键是视图的名称,值是组件。
redirectstring/object重定向目标,可以是路径字符串或重定向描述对象。
propsboolean/object是否将路由参数作为 props 传递给组件。false
aliasstring/array设置路由别名。
childrenArray[RouteConfig]子路由配置,用于嵌套路由。
metaany路由元信息,可用于传递任意额外信息。
beforeEnterFunction路由独享的守卫。

path:* -404

  • VueRouter 是从上向下寻找的
import VueRouter from 'vue-router'const router = new VueRouter({routes:[{path: '/', component:home},...{path:'*',component:NoFind}]
})
  • 当从上向下搜索时如上面都没有匹配的 将于 *匹配

路由参数传递

查询参数传递

  1. <router-link to='/home?参数名=值'>主页</router-link>
  2. $route.query.参数名

动态路由传递

  • 配置路由
import VueRouter from 'vue-router'
const router = new VueRouter({routes:[{path:'/home/:参数名2',name:'home', component:Home}]
})
  • <router-link to='/home/值'>主页</router-link>
  • $route.params.参数名2

$router 对象

方法

$router.push()

$router.push(location,onComplete?,onAbort?)

  • 用于编程式导航,模拟点击浏览器的前进按钮。
  • location 可以是一个字符串路径,或者一个描述目标位置的对象。
    • {name: ‘路由名’}
  • onCompleteonAbort 是可选的回调函数,分别在导航成功或失败时调用。
// 字符串路径
$router.push('/users/eduardo')// 带有路径的对象
$router.push({ path: '/users/eduardo?id=123' })// 命名的路由,并加上参数,让路由建立 url
$router.push({ name: 'user', params: { username: 'eduardo' } })// 带查询参数,结果是 /register?plan=private
$router.push({ path: '/register', query: { plan: 'private' } })// 带 hash,结果是 /about#team
$router.push({ path: '/about', hash: '#team' })
$router.go()

$router.go(n)

  • 相当于浏览器的后退和前进按钮。
  • n 参数表示要向后(n > 0)或向前(n < 0)移动的历史记录数。
$router.back()

$router.back()

  • 后退到浏览器历史记录中的前一个记录。
$router.forward()

$router.forward()

  • 前进到浏览器历史记录中的下一个记录。

属性

$route.query
  • 它包含了 URL 查询字符串中的参数。查询字符串是 URL 中 ? 后面的部分,由键值对组成,键和值之间用 = 连接,不同键值对之间用 & 连接。

  • URL http://example.com/?name=vue&age=5$route.query

  • $route.query : { name: "vue", age: "5" }

$route.params
  • 它包含了路由中的动态片段(也称为路由参数)的值。动态片段是在路由路径中用冒号 : 标记的部分。
  • 例如,对于路由配置:
    • { path: '/user/:id', component: User }
  • URL http://example.com/user/123
    • $route.params:{ id: “123” }`

示例

import VueRouter from 'vue-router'
import Home for '@/views/Home'
const router = new VueRouter({routes:[{path:'/home',name:'home', component:Home,children:{}},//path:为路由url  name:路由名称方便跳转 component:路由组件{path:'/',redirect:'/home'}]linkActiveClass:'active',linkExactActiveClass:'active'})
//根目录 App.vue
<tempalte><div><div><!-- 默认提供高亮 --><router-link to='/home'>主页</router-link><!-- 都可以跳转 --><a href="#/home">主页</a></div><!-- 路由出口  --><router-view></router-view></div>
</tempalte><script></script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++ boost : 保留最新文件其余删除
  • C语言蓝桥杯:语言基础
  • 小程序的右侧抽屉开关动画手写效果
  • javascript如何打印九九乘法表
  • Computer Exercise
  • 笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel与内核进程
  • C语言知识体系思维导图
  • 【828华为云征文|手把手教你如何用华为云Flexus X实例部署之前爆火的“人生重启“游戏】
  • EP8 我的页面布局
  • Win10系统Legacy转UEFI
  • 红海云 × 紫光同芯 | 数字化驱动芯片领军企业人力资源管理新升级
  • Vue项目异常:has no default export.Vetur(1192)
  • 基于Flink的流式计算可视化开发实践之配置->任务生成->任务部署过程
  • 动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
  • C++:类与对象——详解继承、多继承、虚继承
  • JavaScript-如何实现克隆(clone)函数
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【css3】浏览器内核及其兼容性
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • C学习-枚举(九)
  • Gradle 5.0 正式版发布
  • hadoop集群管理系统搭建规划说明
  • IDEA 插件开发入门教程
  • javascript从右向左截取指定位数字符的3种方法
  • Python爬虫--- 1.3 BS4库的解析器
  • RxJS: 简单入门
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SSH 免密登录
  • 创建一个Struts2项目maven 方式
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 聚簇索引和非聚簇索引
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 利用DataURL技术在网页上显示图片
  • 说说动画卡顿的解决方案
  • 小程序开发之路(一)
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​2020 年大前端技术趋势解读
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)bark-ml
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)(2.10) LTM telemetry
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (poj1.2.1)1970(筛选法模拟)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (算法)Game
  • (转) 深度模型优化性能 调参
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./configure、make、make install 命令
  • .gitignore文件---让git自动忽略指定文件
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net8 Blazor 尝鲜