使用document.title
方法通過 dom 操作來修改 title 的值
路由傳遞的方法,即通過路由跳轉傳參傳遞 title 的值。由於業務邏輯中本身就包含大量的路由傳參,為了解耦方便後續維護,推薦將 title 的值通過路由配置中的 meta 進行傳遞。
之後,通過訪問當前路由物件($route)的 meta 屬性即可獲取到 title 值。
// router.js
const routes = [
}, }]
// 業務模組,獲取 title
...beforecreate ()
...
通過上面的兩種方法,可以順利傳遞 title 的值。
完成了 title 值的傳遞,接下來我們談談何時該修改 title。
想到這個問題,大多數人第乙個想到的應該就是在生命週期鉤子中修改 title。
生命週期鉤子
一般情況下,我們在mounted
生命週期鉤子中進行初始化請求,所以慣性思維之下,我在 mounted 中進行了 title 的修改。
// 業務**
mounted ()
結果,效果不佳,標籤頁的 title 延遲 1 秒以上才成功修改。我們可以在beforecreate
鉤子中就可以進行 title 的修改。
改動後的**如下:
// 業務**
beforecreate ()
可以發現,修改後的**效果明顯好了許多,延遲感雖然還有,但是已經不太明顯。
路由守衛
比起在生命週期鉤子中修改 title 值,在路由跳轉時利用路由守衛完成 title 的修改,豈不美哉?畢竟路由跳**生在生命週期函式執行之前,使用路由守衛修改 title 值可以明顯降低 title 修改的延時。
// router.js
router.beforeeach((to, from, next) => )
此時,我們基本完美完成了功能需求,但是,還是有一點小瑕疵——如果 meta 中沒有定義 title 值,此時 title 值就變成了 undefined,所以,我們需要設定預設的 title 值(一般可以是該項目的名稱)。修改後的**如下:
// router.js
const defaulttitle = '預設 title'
router.beforeeach((to, from, next) => )
到這裡為止,我們完美實現了需求,並且實現了該功能與業務**的解耦。 vue動態改變title
1.不同路由路徑下,動態更改title 2.相同路徑下,像產品詳情頁,需要根據產品名字不同動態更改title 1.在router.js根據不同的路由配置所屬title 2.在main.js中配置 情況一 普通h5開發 router.beforeeach to,from next router.aft...
Vue專案中動態修改頁面標題title
如果需要動態設定頁面的title,可以直接使用document.title 可以使用router的beforeeach去統一設定,這種方法使用每個頁面都是固定的標題,在進入路由就賦值標題,進入路由後就不修改了 使用document.title動態修改頁面標題 1 在index.js中設定docume...
如何動態修改Vue專案中的頁面title
前言 在專案中,我們有時候需要修改vue專案中的頁面title。方法有兩種,如果需要動態設定頁面的title,可以直接使用document.title 可以使用router的beforeeach去統一設定,這種方法使用每個頁面都是固定的標題,在進入路由就賦值標題,進入路由後就不修改了。一 方法一使用...