• 动态路由匹配


    当需要把某种模式匹配到的所有路由,全部映射到同一个组件时,需要用到动态路由匹配,即在 vue-router 的路由路径中使用“动态路由参数” 来达到这个效果

    例如,定义一个 User 组件,对于所有 username 各不相同的用户,都要使用这个组件来渲染

    router.js

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    Vue.use(VueRouter);
    
    import User from '../pages/User'
    
    export default new VueRouter({
        routes:[{
            path:'/user/:username',
            component:User
        }]
    })

    现在,像 /user/userA  和 /user/userB 都将会映射到相同的路由

    User.vue

    <template>
        <div>{{this.$route.params.username}}组件</div>
    </template>

    一个“路径参数” 使用冒号标记,当匹配到一个路由时,参数值会被设置到 this.$route.params,可以在每个组件内使用功能。

    也可以在一个路由中设置多段“路由参数”,对应的值都会设置到 this.$route.params 中

     注意,当使用路由参数时,例如从 /user/userA 导航到 /user/userB ,原来的组件实例会被复用,因为两个路由都渲染同一个组件,不过,这也意味着组件的生命周期勾子不会再被调用。

    响应路由参数的变化:

    复用组件时,要对路由参数的变化作出响应的话,可以简单的 watch $route 对象

     或者使用 beforeRouteUpadate,路由守卫

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

    常规参数只会匹配被 / 分隔的URL片段中的字符,如果想匹配任意路径,可以使用通配符(*)

    含有通配符的路由应该放在最后

    路由 { path:' * ' } ,通常用于客户端 404 错误,如果使用了 history 模式,要确保正确配置你的服务器

    当使用一个通配符时,$route.params 内会自动添加一个名为 pathMatch 参数,包含了URL通过通配符被匹配的部分

    高级匹配模式

    vue-router 使用 path-to-regexp 作为路由匹配引擎,所以支持很多高级的匹配模式,例如,可选的动态路径参数、匹配0个或多个、一个或多个、甚至是自定义正则匹配。

    匹配优先级

    有时候,同一个路径可以匹配多个路由,此时,匹配的优先级按照路由的定义顺序

  • 相关阅读:
    CentOS 7 配置 ISCSI 服务器
    CentOS 7 配置 http 服务器
    CentOS 7 配置 samba服务器
    ssh的两种连接方法(包括无密码访问)
    CentOS 7 破解mariadb密码
    Selenium2+python自动化53-unittest批量执行(discover)【转载】
    Selenium2+python自动化52-unittest执行顺序【转载】
    Selenium2+python自动化51-unittest简介【转载】
    selenium3+python自动化50-环境搭建(firefox)【转载】
    Selenium2+python自动化49-判断文本(text_to_be_present_in_element)【转载】
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/13648419.html
Copyright © 2020-2023  润新知