路由跳转及路由传参

跳转

跳转
跳转使用 router
vue 的路由跳转有 3 个方法: go push replace
go :接收数字, 0 刷新,正数前进,负数后退
push :添加,向页面栈中添加一条记录,可以后退
replace :替换,替换页面栈中最新的一条记录,不可后退

 

push replace 方法可接受字符串或对象
字符串:匹配 path
对象:对象内指定

1. 在页面中引入router

import { useRouter } from 'vue-router'
const router = useRouter()

 2. 写跳转即可

// router.push('/about')
router.push({
name: 'about'
})

传参

接收统一使用route

import { useRoute } from 'vue-router'
const route = useRoute()
传参有两种: query 参数、 params 参数
query
地址上表现为: /about?id=1
传:在跳转方法中添加 query 属性,属性内写需要传递的参数
接:在 route query 属性中取值
params
地址上表现为: /about/1
配置:在路由配置中 path 后面添加 /: 参数名

 

传:在跳转方法中添加 params 属性,属性内写需要传递的参数
接:在 route params 属性中取值
注意: params 只能使用 name 跳转
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中路由的方式有很多种,包括通过params属性数,通过props属性数,也可以通过query属性数。以下是具体的实现方法: 1. 通过params属性数 使用params属性进行路由的方式比较常见。在路由跳时,通过params属性将递给目标组件。在目标组件中,可以通过$route.params访问到递过来的数。 实现代码如下: // 在路由配置中,定义name属性和params属性 const routes = [ { path: '/user/:id', name: 'user', component: User, props: true, // 通过params数 params: { name: '张三', age: 18 } } ] // 在跳时,数 this.$router.push({ name: 'user', params: { id: 1 } }) // 在目标组件中,访问数 export default { name: 'User', props: { name: String, age: Number }, created() { // 通过$route.params访问数 console.log(this.$route.params) // 输出{id: 1} console.log(this.name, this.age) // 输出"张三"和18 } } 2. 通过props属性数 除了通过params属性数外,Vue 3还可以通过props属性数。这样做的好处是可以使用组件化开发的方式,在跳页面时直接将组件递给router-view标签。 实现代码如下: // 在路由配置中,定义name属性和props属性 const routes = [ { path: '/user', name: 'user', component: User, // 通过props数 props: { id: 1, name: '张三', age: 18 } } ] // 在跳时,递组件 this.$router.push({ name: 'user', props: true }) // 在目标组件中,定义props和模板 export default { name: 'User', props: { id: Number, name: String, age: Number }, template: ` <div> <p>{{ name }}</p> <p>{{ age }}</p> </div> ` } 3. 通过query属性数 另外,还可以通过query属性数。这种方式与params属性类似,只是在路由配置和数时需要使用query属性。 实现代码如下: // 在路由配置中,定义name属性和query属性 const routes = [ { path: '/user', name: 'user', component: User, // 通过query数 query: { id: 1, name: '张三', age: 18 } } ] // 在跳时,数 this.$router.push({ name: 'user', query: { id: 2 } }) // 在目标组件中,访问数 export default { name: 'User', created() { // 通过$route.query访问数 console.log(this.$route.query) // 输出{id: 2, name: "张三", age: 18} } } 综上所述,Vue 3提供了多种路由的方式,开发者可以根据自己的需求选择不同的方式进行路由跳

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值