vue3中路由的使用

路由:

1.安装所需要的依赖

npm i vue-router

2.定义路由(包括嵌套路由)

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


import Home from "@/views/Home.vue"
import About from "@/views/About.vue"
import News from "@/views/News.vue"


const router=createRouter({
    history:createWebHistory(),
    routes:[
        {
          path: '/',
          redirect: '/home', // 重定向到 home 路由
    
        },
		{
			name:'zhuye',
			path:'/home',
			component:Home
		},
		{
			name:'xinwen',
			path:'/news',
			component:News,
			children:[
				{
					name:'xiang',
					path:'detail',
					component:Detail
				}
			]
		},
		{
			name:'guanyu',
			path:'/about',
			component:About
		}
	]
})
export default router

3.注册路由:



import { createApp } from 'vue'
import App from './App.vue'


import router from "@/router/index"


const app = createApp(App)

app.use(router)

app.mount('#app')

4.使用路由:(路由的query传参)


<template>
<div>
    这个是一个导航的try
    <RouterLink :to="{
        path:'/news',
        query:{
            a:1,
            b:2
        }
    }">到新闻页去</RouterLink>
</div>
<br>
<div>
<RouterView></RouterView>
</div>
</template>


<script setup lang="ts">
import { RouterLink,RouterView } from 'vue-router';

</script>


<style scoped>
</style>

新闻组件


<template>
<div>这是新闻界面,获得的参数是:{{ a }},{{ b }}</div>
</template>



<script setup lang="ts">
import {useRoute} from "vue-router"
const route=useRoute()
const {a,b}=route.query

console.log(route.query)

</script>



<style scoped>
</style>

编程式路由导航(代替routerlink):

//三秒后跳转到指定路由(news组件)
import {onMounted} from 'vue'
import {useRouter} from 'vue-router'

const router = useRouter()

onMounted(()=>{
    setTimeout(()=>{
        router.push('/news')//push函数的写法和to写法一样,可以传递对象(也和to一样)
    },3000)//push方法有历史记录
})

多个routerlink和routerview让其对应渲染:

<template>
  <div>
    <!-- 导航链接 -->
    <RouterLink to="/home">Home</RouterLink>
    <RouterLink to="/news">News</RouterLink>
    <RouterLink to="/about">About</RouterLink>

    <!-- 嵌套路由视图 -->
    <div v-if="$route.path.startsWith('/news')">
      <!-- 只有当路由是新闻相关时才显示新闻的视图 -->
      <RouterView />
    </div>
    <div v-if="$route.path.startsWith('/about')">
      <!-- 只有当路由是关于我们相关时才显示关于我们的视图 -->
      <RouterView />
    </div>
  </div>
</template>

<script setup>
import { RouterLink, RouterView } from 'vue-router';

</script>

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值