Vue-Router API参考
生活随笔
收集整理的这篇文章主要介绍了
Vue-Router API参考
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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)。
路由对象是不可变的,每次成功的导航后都会产生一个新的对象。
路由对象属性
$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参考的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: CF1101D GCD Counting
- 下一篇: 在浏览器上浏览vue项目,后退按钮是可以