2 and routing parameters passed route nested vue.js_11_

1.? Pass parameters in the form of <router-link to = "/ login? Id = 10 & name = zs"> log </ router-link>

Send parameters: < Router-Link to = "? / The Login the above mentioned id = 10 & name = ZS" > Log </ Router-Link >

Accepts parameters: by acquiring {{$ route.query.id}}

 

template: '<h1>登录 --- {{ $route.query.id }} --- {{ $route.query.name }}</h1>',

 

< Body > 
        < div ID = "App" > 

            <-! In routing, a query string parameter passed to the routing, there is no need to modify routing rules path Properties -> 
            < Router-Link to = "/ the Login? the above mentioned id = 10 & name = ZS " > Log </ Router-Link > 
            < Router-Link to =" / the Register " > Register </ Router-Link > 

            < Router-View > </ Router-View > 

        </ div > 

        < Script >
            were login = { 
                template: '<h1>登录 --- {{ $route.query.id }} --- {{ $route.query.name }}</h1>',
                data() {
                    return {
                        msg: '123'
                    }
                },
            }

            var register = {
                template: '<h1>注册</h1>'
            }

            var router = new VueRouter({
                routes: [{
                        path: '/login',
                        component: login
                    }, 
                    { 
                        Path: ' / Register ' , 
                        Component: Register 
                    } 
                ] 
            }) 

            // Create Vue instance, to give the ViewModel 
            var VM =  new new Vue ({ 
                EL: ' #app ' , 
                Data: {}, 
                Methods: {}, 
                / / Router: Router 
                Router 
            }); 
        </ Script > 
    </ body >

 2. Using transmission parameters params

发送参数:<router-link to="/login/10/hdh">登录</router-link>

获取参数:通过{{$route.params.id}}来获取

template: '<h1>登录---{{$route.params.id}}---{{$route.params.name}}</h1>',
路由的匹配需要通过占位符来 占位
{ path: '/login/:id/:name', component: login },
<body>
        <div id="app">

            <router-link to="/login/10/hdh">登录</router-link>
            <router-link to="/register">注册</router-link>

            <router-view></router-view>

        </div>

        <script>
            var login = {
                template: '<h1>登录---{{$route.params.id}}---{{$route.params.name}}</h1>',
                data() {
                    return {
                        msg: '123'
                    }
                },
            }

            var register = {
                template: '<h1>注册</h1>'
            }

            var router = new VueRouter({
                routes: [{
                        path: '/login/:id/:name',
                        component: login
                    },
                    {
                        path: '/register',
                        component: register
                    }
                ]
            })

            // 创建 Vue 实例,得到 ViewModel
            var vm = new Vue({
                el: '#app',
                data: {},
                methods: {},
                // router: router
                router
            });
        </script>
    </body>

 3.路由的嵌套

在路由配置中通过关键字:children来设定路由的嵌套

  var router = new VueRouter({
                routes: [{
                        path: '/account',
                        component: account,
                        //设置account的子路由
                        children: [{
                            path: 'login',
                            component: login
                        }, {
                            path: 'register',
                            component: register
                        }]
                    }
                ]

<body>
        <div id="app">
            <router-link to="/account">Account组件</router-link>
            <router-view></router-view>
        </div>
        <template id="tmpl">
            <div>
                <h1>这是 Account组件</h1>
                <router-link to="/account/login">登陆</router-link>
                <router-link to="/account/register">注册</router-link>
                <router-view></router-view>
            </div>
        </template>
        <script>
            var account = {
                template: '#tmpl'
            };
            var login = {
                template: '<h3>登陆</h3>'
            };
            var register = {
                template: '<h3>注册</h3>'
            };

            var router = new VueRouter({
                routes: [{
                        path: '/account',
                        component: account,
                        //account的子路由
                        children: [{
                            path: 'login',
                            component: login
                        }, {
                            path: 'register',
                            component: register
                        }]
                    }
                ]
            });
            var vm = new Vue({
                el: '#app',
                data: {},
                methods: {},
                router
            })
        </script>
    </body>

 

 

 

 

 

 

 

 

 

Guess you like

Origin www.cnblogs.com/asndxj/p/11707789.html