[Vue3] 嵌套路由

App.vue

<template>
  <div class="app">
    <!-- 导航区 -->
    <div class="navigate">
      <RouterLink to="/home">Home</RouterLink>
      <RouterLink to="/news">News</RouterLink>
      <RouterLink to="/about">About</RouterLink>
    </div>
    <!-- 展示区 -->
    <div class="main-content">
      <RouterView></RouterView>
    </div>
  </div>

</template>
  
<script lang="ts" setup name="App">
  import {RouterView, RouterLink} from 'vue-router'
  import Header from './components/Header.vue'
</script>

<style scoped>
/* 可以添加一些样式 */
</style>

router/index.ts

import { createRouter, createWebHistory } from "vue-router";

import Home from '@/pages/Home.vue'
import News from '@/pages/News.vue'
import About from '@/pages/About.vue'
import Detail from "@/pages/Detail.vue";

const router = createRouter ({
    history:createWebHistory(), // 路由器的工作模式
    routes:[ // 一个一个的路由规则
        {
            path:'/home',
            component:Home
        },
        {
            path:'/news',
            component:News,
            children:[
                {
                    path:'detail', // 子集不用写/
                    component:Detail
                }
            ]
        },
        {
            path:'/about',
            component:About
        }
    ]
})

export default router

News.vue

<template>
    <div class="news"> 
        <ul>
            <li v-for="news in newsList" :key="news.id">
                <RouterLink to="/news/detail">{{ news.title }}</RouterLink>
            </li>
        </ul>

        <!-- <div class="news-content"> -->
            <RouterView></RouterView>
        <!-- </div> -->

    </div>
</template>

<script setup lang="ts" name="News">
    import {reactive} from 'vue'
    import {RouterLink} from 'vue-router'

    const newsList = reactive(
        [
            {id:'1', title:'title1', content:'content1'},
            {id:'2', title:'title2', content:'content2'},
            {id:'3', title:'title3', content:'content3'}
        ]
    )
</script>

Detail.vue

<template>
    <ul class="news-list">
        <li>?</li>

    </ul>
</template>

<script setup lang="ts" name="About">

</script>

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值