• Vue路由-使用children属性实现路由


    在登录父组件中嵌套两个字组件 account1和account2,点击按钮后,可以在父组件中切换子组件

    •  第一步,创建父组件,父组件中包含两个子组件
      • 注意:需要在父组件中设置占位符,用来放置子组件
    <template id="tmp1">
        <div>
            <h1>这是登录父组件</h1>
            <router-link to="/login/account1">子组件account1</router-link>
            <router-link to="/login/account2">子组件account2</router-link>
            <router-view></router-view>
        </div>
    </template>
    
    var login = Vue.extend({
        template: '#tmp1'
    })
    • 第二步,创建路由规则
      • 子组件的路由规则通过childer属性创建
      • 子组件的路由规则中path属性值不要加 /
    var routeObj = new VueRouter({
        routes: [
            {
                path: '/login',
                component: login,
                children: [
                    {path: 'account1', component: account1},
                    {path: 'account2', component: account2},
                ]
            }
        ]
    })
    • 整体代码
    <!DOCTYPE html>
    <!--suppress ALL -->
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    </head>
    <body>
        <div id="app">
            <router-view></router-view>
        </div>
        <template id="tmp1">
            <div>
                <h1>这是登录父组件</h1>
                <router-link to="/login/account1">子组件account1</router-link>
                <router-link to="/login/account2">子组件account2</router-link>
                <router-view></router-view>
            </div>
        </template>
    
        <script>
            var account1 = {
                template: '<h1>这是子组件Account1111</h1>'
            }
            var account2 = {
                template: '<h1>这是子组件Account2222</h1>'
            }
            var login = Vue.extend({
                template: '#tmp1'
            })
            var routeObj = new VueRouter({
                routes: [
                    {
                        path: '/login',
                        component: login,
                        children: [
                            {path: 'account1', component: account1},
                            {path: 'account2', component: account2},
                        ]
                    }
                ]
            })
    
            var vm = new Vue({
                el: '#app',
                data: {},
                methods: {},
                router: routeObj
            })
        </script>
    </body>
    </html>
  • 相关阅读:
    SpringBoot引入spring-boot-starter-security后无法接收前端请求
    虚拟机IP地址不断改变的解决办法
    加密
    Golang设计模式学习笔记--建造者模式
    goland快捷键
    使用webhook实现博客网站自动化部署
    hugo + nginx 搭建博客记录
    Maven打包方式(多模块)
    如何抑制SettingWithCopyWarning
    时间复杂度分析--公式法
  • 原文地址:https://www.cnblogs.com/ella-li/p/14717907.html
Copyright © 2020-2023  润新知