vue3路由传参

创建router.js

import { createRouter, createWebHistory } from 'vue-router'
const routes = [
  {
    path: '/',
    name: 'yemian1',
    component: () => import('../views/yemian1.vue')
  },
  {
    path: '/yemian2',
    name: 'yemian2',
    component: () => import('../views/yemian2.vue')
  },
]
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})
export default router

main.js中配置router

import router from './router'
let app = createApp(App)
app.use(router)

跳转方式

1.router-link

<router-link to="/">跳转到yemian1</router-link>
<router-link to="/yemian2">跳转到yemian2</router-link>

2.编程式跳转

router(vue2里面$router)里面是路由跳转的方法

//引入
import { useRouter } from "vue-router";
//申明
const = router = useRouter()
function jampyemina(){
    //直接写
    router.push('/')
    //或
	router.push('/yemian2')
	//path跳转
	router.push({path:'/'})
	//或
	router.push({path:'/yemian2'})
	//name跳转
	router.push({name:'yemian1'})
	//或
	router.push({name:'yemian2'})
}

3.路由传参

<router-link to="/?id=1&name=no.1">跳转</router-link>

3.1.query传参

query传参 可以使用path也可以使用name跳转且参数会显示在浏览器url栏中
优点刷新不丢值
缺点传的参数过多不美观

3.1.1.router-link

<router-link 
  :to="{
    //name:'yemian1', //用name也可以跳转
    path:'/',
    query:{
      id:'1',
      name:'no.1'
    }
  }"
>
  跳转
</router-link>

3.1.2.编程式

//引入
import { useRouter } from "vue-router";
//申明
const = router = useRouter()
function jampyemina(){
	router.push(
		{
		 path:'/',
		 query:{
		   	id:'1',
		   	name:'no.1'
		 }
	)
	//或
	router.push(
		{
		 name:'yemian1',
		 query:{
		   	id:'1',
		   	name:'no.1'
		 }
	)
	//或
	router.push(
	 	{
	 	 path:'/yemian2',
		 query:{
		   id:'2',
		   name:'no.2'
		 }
		}
	)
	//或
	router.push(
		{
		 name:'yemian2',
		 query:{
		   	id:'2',
		   	name:'no.2'
		 }
	)
}

3.2.query传参 目标路由取参
route(vue2里面的$route)里面包含路由跳转的信息

<script setup>
//引入
import { useRoute } from "vue-router";
//申明
const = route = useRoute()
//打印
console.log(route.query)
</script>

3.3.params传参
先在路由中配置

  {
    path: '/:id:name?',
    name: 'yemian1',
    component: () => import('../views/yemian1.vue')
  },
 {
    path: '/yemian2/:id:name?',
    name: 'yemian2',
    component: () => import('../views/yemian2.vue')
  },

params传参只能使用name跳转
3.3.1.router-link

<router-link 
  :to="{
    //只能用name跳转
    name:'yemian1',
    params:{
      id:'1',
      name:'no.1'
    }
  }"
>
  跳转
</router-link>

3.3.2.编程式

//引入
import { useRouter } from "vue-router";
//申明
const = router = useRouter()
function jampyemina(){
	router.push(
		{
		 name:'yemian1',
		 params:{
		   	id:'1',
		   	name:'no.1'
		 }
	)
	//或
	router.push(
		{
		 name:'yemian2',
		 params:{
		   	id:'1',
		   	name:'no.1'
		 }
	)

3.3.params传参 目标路由取参

<script setup>
//引入
import { useRoute } from "vue-router";
//申明
const = route = useRoute()
//打印
console.log(route.params)
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值