Vue3学习日志(2):通过router实现页面间传递参数

 在使用router.push跳转到新页面,新页面需要参数来向后台请求数据来渲染页面,请求的参数需要从上一个页面传递过来,就需要使用路由传值,通过路由的 params 或 query 来实现,可以通过 props 或者 $route.params 来访问传递的参数。由于我们在路由配置中设置了 props: true,Vue Router 会自动将路由参数作为 props 传递给组件。

首先配置路由,param1就是我们需要传递参数的名称。

// router.ts
//需要接受参数的新页面的路由配置

{
        path: 'creatmodel/:param1',
        name: 'Creatmodel',  
        component: () => import('@/pages/CreateModel.vue'),
        props: true
 },

配置传值的页面。

//old.vue
//需要从这个页面传递参数到新的页面,通过button来触发事件

<script setup lang="ts">
  import { useRouter } from 'vue-router';
  const router = useRouter();  
  const handleClick = async (item) => {
    console.log(item.dessert);
    router.push({  
      name: 'Creatmodel',   
      params: { param1: item.dessert } // 获取的页面的table中的元素,作为要传递的参数  
  });  

}
</script>

接收参数的页面。

//new.vue

<script lang="ts" setup>

  const props = defineProps<{ param1: string }>();  
  console.log(props.param1)

</script>

在路由配置中启用了 props 解构,param1将作为 prop 自动可用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值