通过上面2节我们学习了使用 query 和 params 2种方式进行路由传参,现在我们讨论一下他们的区别
# query 方式: 定义 path 即可。
# params 方式 : 需要定义 path 和 name, 此处注意 : 通过 path 的定义,如 : /User/:id/name 可以有效地控制路由参数完整性( 参数不完整会报错 ),也可以有效地隐藏参数名称
# query 方式 : http://localhost:3001/#/User?id=12&name=lesscode
# params 方式 : http://localhost:3001/#/ParamsDemo/12/lesscode
# query 方式 :
import { onMounted, ref } from "vue";
import { useRoute } from "vue-router";
const uid = ref(0);
const uname = ref('lesscode');
const route = useRoute();
onMounted(()=>{
let queryData = route.query;
console.log(queryData);
if(queryData.id){
uid.value = queryData.id;
uname.value = queryData.name;
}
});
# params 方式 :
import { onMounted, reactive } from "vue";
import { useRoute } from "vue-router";
const paramsData = reactive({id:0});
onMounted(()=>{
const route = useRoute();
console.log(route.params);
});
了解了 query 和 params 的区别,我们不应该去讨论他们的好坏,而是在适合的场景使用合适的模式 ~