美文网首页
2020-05-08--Vue路由2--命名路由以及编程式导航

2020-05-08--Vue路由2--命名路由以及编程式导航

作者: program_white | 来源:发表于2020-05-08 12:44 被阅读0次

    命名路由:用name属性值给路由取别名

    就是在路由规则数组中给路由起个别名,那么在路由链接中就可以通过name属性进行匹配路由,并且可以添加其他参数等。

    <body>
        <body>
            <div id="app">
                <!-- 路由链接 -->
                <router-link to="/user/123">User1</router-link> 
                <!-- 与上边等价 -->
                <router-link :to="{ name:'user' , params: {id:123}}">User2</router-link>
                
                <!--占位符  -->
                <router-view></router-view>   
            </div>
            <script>
                //定义组件
                var User = { template:"<div>用户:{{$route.params.id}}</div>"}
    
                //路由实例
                var myRouter = new VueRouter({
                    //routes是路由规则数组
                    routes:[ 
                        { path: "/user/:id", component: User, name:"user"},   
                    ]
                })
                var vm = new Vue({
                    el:'#app',
                    //通过router属性挂载路由对象
                    router:myRouter
                })
            </script>
        </body>
    </body>
    

    注意:



    运行:



    这种命名路由的方式方便以后修改路由时,只需要改变name属性的值即可改变路由。
    还可以编程式导航,就是不是用户被动点击,而是我们模拟函数进行主动点击。

    上边的内容不变,在Vue实例中编写点击函数

    var vm = new Vue({
                    el:'#app',
                    //通过router属性挂载路由对象
                    router:router,
                    
                    mounted () {
                     //类似于把()中的信息入栈,与点击该信息对应的路由等效
                        router.push({ name:'user',params:{id:333} })
                    }
                })
    

    运行:



    点击User2:


    编程式导航(★★★)

    页面导航的两种方式:

    • A.声明式导航:通过点击链接的方式实现的导航
    • B.编程式导航:调用js的api方法实现导航,
      比如调用location.href就是push底层运用的。
      Vue-Router中常见的导航方式:
    • this.$router.push("hash地址");
    • this.$router.push("/login");
    • this.$router.push({ name:'user' , params: {id:123} });
    • this.$router.push({ path:"/login" });
    • this.$router.push({ path:"/login",query:{username:"jack"} });
    • this.router.go(n); n为数字,参考history.go this.router.go(-1);(往前跳转n个页面,在栈中)

    相关文章

      网友评论

          本文标题:2020-05-08--Vue路由2--命名路由以及编程式导航

          本文链接:https://www.haomeiwen.com/subject/ditfnhtx.html