在写vue3项目时,有时候我们会把组件内部分逻辑代码分离到外部js中,然后在组件里通过import导入。此时如果我们要在组件外使用route对象,方式与组件内不同:
import { useRoute } from 'vue-router';
const route = useRoute();
// '@/router'为router配置文件,里面已导出router
import router from '@/router';
const route = router.currentRoute;
// 使用route,route为一个ref响应式对象,使用时需要加上'.value'
const query = route.value.query;
import router from '@/router';
const route = router.currentRoute;
console.log(route.value);



如果我们在组件外使用route.query的值,并在组件内导入,当我们切换到其他路由再切换回来时,即使route里携带的query值变化,但是组件内并没有重新导入数据,还是用的原来的route.query值。