在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函数体执行。