vue-router 笔记

HTML

Hello App!

Go to Foo

Go to Bar

定义路由

// 每个路由应该映射一个组件。 其中"component" 可以是

// 通过 Vue.extend() 创建的组件构造器,

// 或者,只是一个组件配置对象。

// 我们晚点再讨论嵌套路由。

const routes = [

{ path: ‘/foo’, component: Foo },

{ path: ‘/bar’, component: Bar }

]

我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route 访问当前路由

// Home.vue

export default {

computed: {

username () {

// 我们很快就会看到 params 是什么

return this.$route.params.username

}

},

methods: {

goBack () {

window.history.length > 1

? this.$router.go(-1)
this.$router.push(‘/’)

}

}

}

当 <router-link> 对应的路由匹配成功,将自动设置 class 属性值 .router-link-active。

<router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航。 通过 to 属性指定目标地址,默认渲染成带有正确链接的 <a> 标签,可以通过配置 tag 属性生成别的标签.。

当你在 HTML5 history 模式下使用 base 选项之后,所有的 to 属性都不需要写 (基路径) 了。

<router-link>


to


Home

Home

Home

Home

Home

User

Register

replace

设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。

append

设置 append 属性后,则在当前 (相对) 路径前添加基路径。例如,我们从 /a 导航到一个相对路径 b,如果没有配置 append,则路径为 /b,如果配了,则为 /a/b

tag

有时候想要 <router-link> 渲染成某种标签,例如 <li>。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。

foo

  • foo
  • active-class

    默认值: "router-link-active"

    设置 链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。

    event

    默认值: ‘click’

    声明可以用来触发导航的事件。可以是一个字符串或是一个包含字符串的数组。

    Router 构建选项


    routes

    declare type RouteConfig = {

    path: string;

    component?: Component;

    name?: string; // 命名路由

    components?: { [name: string]: Component }; // 命名视图组件

    redirect?: string | Location | Function;

    props?: boolean | Object | Function;

    alias?: string | Array;

    children?: Array; // 嵌套路由

    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/"

    scrollBehavior

    • 类型: Function

    type PositionDescriptor =

    { x: number, y: number } |

    { selector: string } |

    ?{}

    type scrollBehaviorHandler = (

    to: Route,

    from: Route,

    savedPosition?: { x: number, y: number }

    ) => PositionDescriptor | Promise

    使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。

    注意: 这个功能只在支持 history.pushState 的浏览器中可用。

    当创建一个 Router 实例,你可以提供一个 scrollBehavior 方法:

    const router = new VueRouter({

    routes: […],

    scrollBehavior (to, from, savedPosition) {

    // return 期望滚动到哪个的位置

    }

    })

    举例:

    scrollBehavior (to, from, savedPosition) {

    return { x: 0, y: 0 }

    }

    动态路由匹配

    const router = new VueRouter({

    routes: [

    // 动态路径参数 以冒号开头

    { path: ‘/user/:id’, component: User }

    ]

    })

    像 /user/foo 和 /user/bar 都将映射到相同的路由。

    参数值会被设置到 this.$route.params,可以在每个组件内使用

    User {{ $route.params.id }}

    响应路由参数的变化

    想对路由参数的变化作出响应的话,你可以简单地 watch

    watch: {

    ‘$route’ (to, from) {

    // 对路由变化作出响应…

    }

    }

    捕获所有路由或 404 Not found 路由

    {

    // 会匹配所有路径

    path: ‘*’

    }

    {

    // 会匹配以 /user- 开头的任意路径

    path: ‘/user-*’

    }

    最后

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

    因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    img

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
    工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

    因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    [外链图片转存中…(img-4WpAQtNG-1715658785839)]

    [外链图片转存中…(img-R0KbyWEh-1715658785840)]

    [外链图片转存中…(img-WujBJkON-1715658785840)]

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值