Vue3路由进阶实战:深度解析参数传递与导航守卫核心技术

一、路由参数传递的进阶应用技巧

1.1 路由配置与参数验证

// router/index.js
{
   
   
  path: '/user/:userId(\\d+)', // 使用正则表达式限制只匹配数字
  name: 'UserDetail',
  component: () => import('../views/UserDetail.vue'),
  props: true // 启用props传参模式
}
技术要点:
  • 通过正则表达式约束参数格式,提升参数安全性 (如\\d+限制为数字)
  • 使用路由懒加载提升性能
  • 启用props模式实现组件解耦

1.2 组件参数接收的三种方式

<!-- UserDetail.vue -->
<script setup>
// 方式1:通过useRoute获取
const route = useRoute()
console.log(route.params.userId)

// 方式2:通过props接收(推荐)
const props = defineProps({
   
   
  userId: {
   
   
    type: [String, Number],
    required: true
  }
})

// 方式3:watch参数变化
watch(() => route.params.userId, (newVal) => {
   
   
  // 处理参数变化逻辑
})
</script>

二、查询参数:实现复杂数据传递

2.1 查询参数传递技巧

使用query对象进行非敏感数据传递,支持对象嵌套:

// 编程式导航
router.push({
   
   
  path: '/search',
  query: {
   
   
    keywords: 'vue3',
    filters: {
   
   
      sort: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code_Cracke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值