vue3在路由里取參數(shù)幾種常見的方法
在 Vue 3 中,使用 Vue Router 獲取路由參數(shù)有多種方式。以下是幾種常見的方法:
1. 通過 this.$route 獲?。∣ptions API)
如果你使用的是 Options API,可以通過 this.$route 訪問路由對象,并從中提取參數(shù)。
export default {
mounted() {
// 獲取動態(tài)路由參數(shù)
const id = this.$route.params.id;
console.log('Route Param:', id);
// 獲取查詢參數(shù)
const queryParam = this.$route.query.someQueryParam;
console.log('Query Param:', queryParam);
}
};
2. 通過 useRoute 獲?。–omposition API)
在 Composition API 中,可以使用 useRoute 鉤子來獲取路由信息。
import { useRoute } from 'vue-router';
export default {
setup() {
const route = useRoute();
// 獲取動態(tài)路由參數(shù)
const id = route.params.id;
console.log('Route Param:', id);
// 獲取查詢參數(shù)
const queryParam = route.query.someQueryParam;
console.log('Query Param:', queryParam);
return { id, queryParam };
}
};
3. 監(jiān)聽參數(shù)變化
如果路由參數(shù)可能會發(fā)生變化(例如用戶導航到同一個路由但參數(shù)不同),你需要監(jiān)聽參數(shù)的變化。
使用 watch
import { useRoute, watch } from 'vue-router';
import { ref } from 'vue';
export default {
setup() {
const route = useRoute();
const id = ref(route.params.id);
// 監(jiān)聽路由參數(shù)變化
watch(
() => route.params.id,
(newId) => {
id.value = newId;
console.log('Updated Route Param:', newId);
}
);
return { id };
}
};
4. 動態(tài)路由參數(shù)示例
假設你的路由配置如下:
const routes = [
{
path: '/user/:id',
component: UserComponent
}
];
- 動態(tài)參數(shù)
id可以通過route.params.id獲取。 - 查詢參數(shù)(如
/user/123?name=John)可以通過route.query.name獲取。
5. 完整示例
以下是一個完整的示例,展示如何在組件中獲取和監(jiān)聽路由參數(shù):
<template>
<div>
<p>User ID: {{ id }}</p>
<p>Query Param: {{ queryParam }}</p>
</div>
</template>
<script>
import { useRoute, watch } from 'vue-router';
import { ref } from 'vue';
export default {
setup() {
const route = useRoute();
const id = ref(route.params.id);
const queryParam = ref(route.query.name);
// 監(jiān)聽路由參數(shù)變化
watch(
() => route.params.id,
(newId) => {
id.value = newId;
}
);
// 監(jiān)聽查詢參數(shù)變化
watch(
() => route.query.name,
(newName) => {
queryParam.value = newName;
}
);
return { id, queryParam };
}
};
</script>
注意事項
動態(tài)路由參數(shù) vs 查詢參數(shù):
- 動態(tài)路由參數(shù):定義在路徑中的參數(shù)(如
/user/:id)。 - 查詢參數(shù):URL 中的查詢字符串(如
/user?id=123&name=John)。
- 動態(tài)路由參數(shù):定義在路徑中的參數(shù)(如
參數(shù)變化時重新加載數(shù)據(jù):
如果路由參數(shù)發(fā)生變化,但組件沒有重新加載(因為復用了相同的組件實例),需要手動監(jiān)聽參數(shù)變化并更新數(shù)據(jù)。
希望這些內容能幫助你順利在 Vue 3 中獲取路由參數(shù)!
總結
到此這篇關于vue3在路由里取參數(shù)幾種常見的方法的文章就介紹到這了,更多相關vue3路由取參數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue vuex vue-rouert后臺項目——權限路由(適合初學)
這篇文章主要介紹了vue vuex vue-rouert后臺項目——權限路由,通過本文可以很清除的捋清楚vue+vuex+vue-router的關系,本版本非常簡單,適合初學者,需要的朋友可以參考下2017-12-12
淺談Vue render函數(shù)在ElementUi中的應用
今天小編就為大家分享一篇淺談Vue render函數(shù)在ElementUi中的應用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09

