背景:
我想要跳转传参,结果一直用的useRouter,应该用useRoute,浪费的好长时间,这里可以看文章
route和router的区别-CSDN博客https://blog.csdn.net/qq_36942042/article/details/102503807
博客中的区别
1. router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,包含了所有的路由包含了许多关键的对象和属性。例如history对象
2. route是一个跳转的路由对象,每一个路由都会有一个route对象,是一个局部的对象,可以获取对应的name,path,params,query等
实例:
跳转前的页面
import { useRouter } from 'vue-router'
const router = useRouter();
const contentDetail = (item: Job) => {
// todo("跳转到活动详情,将id传过去");
router.push({ path: '', query: { id: item.id, flag: 1 } });
}
跳转后的页面
import { useRoute, useRouter } from 'vue-router'
const route = useRoute();
function init() {
console.log("flag得值:", route.query.flag)
console.log("flag得类型:", typeof route.query.flag)
}
注意,router4.1.4将params删了,具体请看下方问题的回答
类似这种的想要仅仅传一个id过去,这种可以用router发送,用局部的route接收,因为局部的route可以被读取相应的属性。
其实传值还有一种方法,将它变为路径变为"/test:id",这种的,我忘了叫啥了,感兴趣的可以搜搜,或者看官方文档,不过这个好像有局限性。