vue3路由动态传参

488 阅读1分钟

在router.js文件中

const routers = [
    {
    // 动态参数路由,这里的:houseId 就是动态参数
        path: '/houseDetail/:houseId',
        name: 'HouseDetail',
        component: () => import('@/views/houseDetail/index.vue')
    }
]

主页面点击某个按钮后,进入动态参数页面,以下是你触发的方法,在按钮上绑定@click="goHouseDetailFn"即可

const goHouseDetailFn = (id)=> {
  router.push({
    name: 'HouseDetail',
    params: { houseId: id }
  })
}

动态路由页面

<script setup>
import { useRouter } from 'vue-router'
import  { onMounted } from 'vue'
const router = useRouter()
onMounted(()=> {
// 里面可以获取到houseId
  console.log(router.currentRoute.value.params);
})
</script>

这里使用了setup语法糖,必须在onMounted中获取路由参数,否则只会获取到undefined。
如果没有使用setup语法糖,useRouter函数和router不能在setup函数体执行。