Vue Router API 参考

1. < router-link> Props

# tag

类型: string默认值: "a"有时候想要 <router-link> 渲染成某种标签,例如 <li>。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。
<router-link to="/foo" tag="li">foo</router-link>
<!-- 渲染结果 -->
<li> foo </li>

2. < router-view >

<router-view> 组件是一个 functional 组件,渲染路径匹配到的视图组件。<router-view> 渲染的组件还可以内嵌自己的 <router-view>,根据嵌套路径,渲染嵌套组件。

3. < router-view > Props

# name

类型: string默认值: "default"如果 <router-view>设置了名称,则会渲染对应的路由配置中 components 下的相应组件。查看 命名视图 中的例子。

4. Router 构建选项

# routes

类型: Array<RouteConfig>RouteConfig 的类型定义:
declare type RouterConfig = {path: string;component?:Component;   // 引用组件的名字name?: string; //命名路由components: {[name:string]:Component};   // 命名视图组件redirect: string | location | Function;  // 重定向props: string | boolean | Function;        // 传参alias: string | Array<string>; // 别名children: Array<RouterConfig>;  // 嵌套路由beforeEnter?: (to: Route, from: Route, next: Function) => void;meta?: any;// 2.6.0+caseSensitive?: boolean; // 匹配规则是否大小写敏感?(默认值:false)pathToRegexpOptions?: Object; // 编译正则的选项
}

# mode

类型: string默认值: "hash" (浏览器环境) | "abstract" (Node.js 环境)可选值: "hash" | "history" | "abstract"配置路由模式:hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器。history: 依赖 HTML5 History API 和服务器配置。查看 HTML5 History 模式。abstract: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式。

# base

类型: string默认值: "/"应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"。

# linkActiveClass

类型: string默认值: "router-link-active"全局配置 <router-link> 的默认“激活 class 类名”。参考 router-link。

# linkExactActiveClass

类型: string默认值: "router-link-exact-active"全局配置 <router-link> 精确激活的默认的 class。可同时翻阅 router-link。

5. Router 实例属性

# router

类型: Vue instance配置了 router 的 Vue 根实例

# router.mode

类型: string路由使用的模式。

# router.currentRoute

类型: Route当前路由对应的路由信息对象。

6. Router 实例方法

router.beforeEach

router.beforeResolve

router.afterEach

函数签名:router.beforeEach((to, from, next) => {/* must call `next` */
})router.beforeResolve((to, from, next) => {/* must call `next` */
})router.afterEach((to, from) => {})
增加全局的导航守卫。参考导航守卫。在 2.5.0+ 这三个方法都返回一个移除已注册的守卫/钩子的函数。

#router.push

#router.replace

#router.go

#router.back

#router.forward

7.路由对象

一个路由对象表示当前激活的路由的状态信息,包含了当前URL解析得到的信息,还有URL 匹配到的路由记录( route records)。
路由对象是不可变的,每次成功的导航后都会产生一个新的对象。

路由对象出现在多个地方:在组件内,即 this.$route
在 $route 观察者回调内
router.match(location) 的返回值
导航守卫的参数:
router.beforeEach((to, from, next) => {// `to` 和 `from` 都是路由对象
})

路由对象属性

$route.path类型: string字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"。
$route.params类型: Object一个 key/value 对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个空对象。
$route.query类型: Object一个 key/value 对象,表示 URL 查询参数。例如,对于路径 /foo?user=1,则有 $route.query.user == 1,如果没有查询参数,则是个空对象。
$route.hash类型: string当前路由的 hash 值 (带 #) ,如果没有 hash 值,则为空字符串。
$route.fullPath类型: string完成解析后的 URL,包含查询参数和 hash 的完整路径。
$route.matched类型: Array<RouteRecord>
一个数组,包含当前路由的所有嵌套路径片段的路由记录 。路由记录就是 routes 配置数组中的对象副本 (还有在 children 数组)。const router = new VueRouter({routes: [// 下面的对象就是路由记录{ path: '/foo', component: Foo,children: [// 这也是个路由记录{ path: 'bar', component: Bar }]}]
})当 URL 为 /foo/bar,$route.matched 将会是一个包含从上到下的所有对象 (副本)。
$route.name当前路由的名称,如果有的话。(查看命名路由)
$route.redirectedFrom如果存在重定向,即为重定向来源的路由的名字。(参阅重定向和别名)

8. 组件注入

组件注入的属性

通过在 Vue 根实例的 router 配置传入 router 实例, 通过这些属性成员会被注入到每个子组件。

增加的组件配置选项

beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave
const Foo = {template: `...`,beforeRouteEnter (to, from, next) {// 在渲染该组件的对应路由被 confirm 前调用// 不!能!获取组件实例 `this`// 因为当守卫执行前,组件实例还没被创建},beforeRouteUpdate (to, from, next) {// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 可以访问组件实例 `this`},beforeRouteLeave (to, from, next) {// 导航离开该组件的对应路由时调用// 可以访问组件实例 `this`}
}

完整的导航解析流程

1. 导航被触发。
2. 在失活的组件里调用离开守卫。
3. 调用全局的 beforeEach 守卫。
4. 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
5. 在路由配置里调用 beforeEnter。
6. 解析异步路由组件。
7. 在被激活的组件里调用 beforeRouteEnter。
8. 调用全局的 beforeResolve 守卫 (2.5+)。
9. 导航被确认。
10. 调用全局的 afterEach 钩子。
11. 触发 DOM 更新。
12. 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。

转载于:https://www.cnblogs.com/zhaodizero/p/10336637.html

Vue-Router API参考相关推荐

  1. vue router children 路由变了 组件没变_Vue.js从零开始——路由(2)

    因为一些原因,我断更了几天时间,因为要准备面试 + 不在家,抱歉大家! 题图是一个大概的 Vue 模块化项目组成,当然因为我从网上找的,所以可以忽略当中的 Bulma,这其实是一个 CSS 框架,往简 ...

  2. 注意避坑,Vue Router 4: 路由参数在 created/setup 时不可用

    有梦想,有干货,微信搜索 [大迁世界] 关注这个在凌晨还在刷碗的刷碗智. 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考 ...

  3. vue router 参数_Vue.js项目开发技术解析

    Vue.js项目开发技术解析 一.Vue.js实例 在一个Vue.js工程中,用于显示内容最基层的实例称之为根实例.通过该实例可以进行页面或组件的更新和显示.对于项目本身而言,无论是什么样的页面,都要 ...

  4. Vue Router的详细教程

    Vue Router的详细教程 安装 #直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js Unpkg.com 提供了基于 NPM 的 ...

  5. python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)...

    昨日内容回顾 0. 组件注意事项!!!data属性必须是一个函数!1. 注册全局组件Vue.component('组件名',{template: ``})var app = new Vue({el: ...

  6. vue常用api总结

    1.require.context() 1.场景:如页面需要导入多个组件,原始写法: import titleCom from '@/components/home/titleCom' import ...

  7. Vue.js 从 Vue Router 0.7.x 迁移

    从 Vue Router 0.7.x 迁移 只有 Vue Router 2 是与 Vue 2 相互兼容的,所以如果你更新了 Vue ,你也需要更新 Vue Router .这也是我们在主文档中将迁移路 ...

  8. Vue Router 4.0 正式发布!焕然一新。

    关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习 12月8日,Vue Router 4 正式发布稳定版本. 在经历了 14 个 Alph ...

  9. Vue Router 4 快速入门

    现在我们安装 vue-router 版本的时候,默认还是安装的 3.x 版本的,由于 vue3 的更新发生很大的变化,所以为了兼容处理,vue-router 也将发布最新版 4.x 版本了. 安装注册 ...

最新文章

  1. android studio 自动提示jni代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中...
  2. StarUML 4.0
  3. java学习笔记(二) ----基本数据类型应用
  4. 如何将网页保存为图片_如何用浏览器插件一键批量下载网页图片?
  5. 机器学习(十)——因子分析
  6. mysql中逗号前的字符串_MySql逗号拼接字符串查询的两种方法
  7. python重写和装饰器_python装饰器
  8. 大数据_Flink_Java版_数据处理_流处理API_Sink操作_把数据存储到ElasticSearch---Flink工作笔记0040
  9. MyEclipse 修改 默认的 工作空间(转)
  10. Saltstack系列2:Saltstack远程执行命令
  11. No module named ‘gym‘
  12. 学习日记:scipy库的版本差异
  13. 魅族手机无法链接ADB的解决方法
  14. js中 urlencode编码
  15. 服务器晚上自动重启是什么原因,服务器经常自动重启是什么原因
  16. 大话西游手游服务器维护要多久,大话西游手游7月22日维护及解读
  17. 几何学在计算机中的应用,探析坐标几何的应用意义及其在计算机中的实现
  18. 通过USB转TTL串口下载stm32程序
  19. 在了解VR的途中看到文章
  20. 数字逻辑综合工具实践-DC-07 ——综合优化(二)和RTL coding 和DFT

热门文章

  1. java爬虫下载付费html网页模板
  2. 【附赠PPT】 KubeMeet 成都站回顾:让云原生应用交付和管理变得更简单
  3. Kubernetes 新玩法:在 yaml 中编程
  4. 开发函数计算的正确姿势——OCR 服务
  5. 独家解密:阿里是如何应对超大规模集群资源管理挑战的?
  6. java 根据预览图片上传_JavaSctit 利用FileReader和滤镜上传图片预览功能
  7. Linux 父进程 子进程 回收,回收 fork() 的子进程
  8. 利用python数据可视化_想用Python做数据可视化?先迈过这个“坎”
  9. Postman批量跑接口
  10. tp5 批量更新多条记录_tp5批量导入数据库