vue3?修改路由中的meta屬性
更新時間:2024年11月27日 11:44:45 作者:wangshang1320
本文主要介紹了Vue3中使用鉤子函數來修改路由中的meta屬性值的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
有些時候可能需要在路由跳轉前后修改meta里面的相關屬性值,這個時候就需要使用鉤子函數(路由守衛(wèi)),鉤子函數有全局鉤子,局部組件鉤子函數以及路由配置里面的鉤子函數 (這些也叫路由守衛(wèi))
1.全局鉤子函數:beforeEach()
在Vue Router中,beforeEach
是用于注冊全局前置守衛(wèi)的函數。它允許你在路由導航觸發(fā)之前執(zhí)行一些邏輯
代碼
const router = useRouter(); router.beforeEach((to, from) => { // 監(jiān)聽路由變化之前的操作 注意:這里是全局的 不建議用全局的 // to.matched.some(record => record.meta.requiresAuth) if(to.name === "當前路由"){ const { type} = to.params || {}; to.meta.title = “你想要修改的值”; to.meta = {}; } })
注意:beforeEach 函數是全局函數,每次跳轉都會觸發(fā),所以請寫好當前頁面的判斷,否則濫用全局函數可能導致后期不好維護
2.單個組件里面的鉤子函數
- beforeRouteUpdate(路由進入當前組件/頁面之前或者更新前)
- beforeRouteLeave(路由離開當前組件/頁面后)
- beforeRouteEnter(組件進入組件/頁面前)
code:
<script lang="ts"> import { defineComponent } from "vue"; export default defineComponent({ beforeRouteEnter(to, from, next) { // console.log('beforeRouteEnter====='); //進入當前頁面時的操作 console.log('beforeRouteEnter beforeRouteEnter 進入') next(); }, beforeRouteLeave(to,from,next){ console.log('beforeRouteLeaveleave leave 離開') next(); } }); </script>
注意:這幾個路由守衛(wèi)鉤子函數不能寫在setup 的腳本里面
到此這篇關于vue3 修改路由中的meta屬性的文章就介紹到這了,更多相關vue3 修改meta屬性內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!