• vue2_路由02_嵌套/多级路由


    在这里插入图片描述

    总览

    目录

    在这里插入图片描述

    代码

    App.vue

    <template>
      <div>
        <div class="row">
          <Banner/>
        </div>
        <div class="row">
          <div class="col-xs-2 col-xs-offset-2">
            <div class="list-group">
    					<!-- 原始html中我们使用a标签实现页面的跳转 -->
              <!-- <a class="list-group-item active" href="./about.html">About</a> -->
              <!-- <a class="list-group-item" href="./home.html">Home</a> -->
    
    					<!-- Vue中借助router-link标签实现路由的切换 -->
    					<router-link class="list-group-item" active-class="active" to="/about">About</router-link>
              <router-link class="list-group-item" active-class="active" to="/home">Home</router-link>
            </div>
          </div>
          <div class="col-xs-6">
            <div class="panel">
              <div class="panel-body">
    						<!-- 指定组件的呈现位置 -->
                <router-view></router-view>
              </div>
            </div>
          </div>
        </div>
      </div>
    </template>
    
    <script>
    	import Banner from './components/Banner'
    	export default {
    		name:'App',
    		components:{Banner}
    	}
    </script>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    mian.js 略

    路由组件

    Home.vue

    <template>
    	<div>
    		<h2>Home组件内容</h2>
    		<div>
    			<ul class="nav nav-tabs">
    				<li>
    					<!-- 注意 to指向的是路由配置的children的某个路径,所以这里是 /home下的/XXX   -->
    					<router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
    				</li>
    				<li>
    					<router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
    				</li>
    			</ul>
    			<router-view></router-view>
    		</div>
    	</div>
    </template>
    
    <script>
    	export default {
    		name:'Home',
    		/* beforeDestroy() {
    			console.log('Home组件即将被销毁了')
    		}, */
    		/* mounted() {
    			console.log('Home组件挂载完毕了',this)
    			window.homeRoute = this.$route
    			window.homeRouter = this.$router
    		},  */
    	}
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    Message.vue 略
    New.vue 略

    路由配置文件 router/index.js

    // 该文件专门用于创建整个应用的路由器
    import VueRouter from 'vue-router'
    //引入组件
    import About from '../pages/About'
    import Home from '../pages/Home'
    import News from '../pages/News'
    import Message from '../pages/Message'
    
    //创建并暴露一个路由器
    export default new VueRouter({
    	routes:[
    		{
    			path:'/about',
    			component:About
    		},
    		{
    			path:'/home',
    			component:Home,
    			children:[
    				{
    					path:'news',
    					component:News,
    				},
    				{
    					path:'message',
    					component:Message,
    				}
    			]
    		}
    	]
    })
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    总结

    需求

    在这里插入图片描述
    在home组件下存在new和message两个组件

    1. 当点击home按钮时跳转到home组件
    2. 当点击home组件里面的new组件时,展示new组件内容
    3. 当点击home组件里面的message组件时,展示message组件内容

    路由配置children

    		{
    			path:'/home',
    			component:Home,
    			children:[
    				{
    					path:'news',
    					component:News,
    				},
    				{
    					path:'message',
    					component:Message,
    				}
    			]
    		}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    路径跳转

    因为new和message包含在home组件中,所以路径跳转设置在Home组件中

    <li>
    	<!-- 注意 to指向的是路由配置的children的某个路径,所以这里是 /home下的/XXX   -->
    	<router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
    </li>
    <li>
    	<router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
    </li>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    展示

    同理,设置在Home组件中

    <router-view></router-view>
    
    • 1
  • 相关阅读:
    【面试专栏】第八篇:Java基础:集合篇-集合总结、集合工具类
    Thymeleaf模板
    121买卖股票的最佳时机I II III IV and 309最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
    公钥私钥传输,以及对CA证书的理解
    XML解析
    蓝桥等考Python组别一级001
    虚幻4学习笔记(12)操控导入的角色、动画蓝图、播放蒙太奇和打包、角色重定向
    如何使用netlify部署vue应用程序
    总结40条常用Linux命令的基本使用
    MySQL事务
  • 原文地址:https://blog.csdn.net/qq_44289784/article/details/125505933