vue-router 中的 beforeEach 函數是路由守衛中的一個鉤子函數,它在路由跳轉之前被調用。通常情況下,我們需要在 beforeEach 函數中做一些權限驗證、登錄驗證等操作。但是,在實際的開發中,我們經常會遇到需要在一個頁面中執行多個 beforeEach 函數的情況。針對這種情況,我們可以將多個 beforeEach 函數封裝成一個閉包,然后在路由中使用這個閉包。
const beforeEach1 = (to, from, next) =>{ // do something... } const beforeEach2 = (to, from, next) =>{ // do something... } const multipleBeforeEach = (...beforeEachs) =>{ return function (to, from, next) { // 依次執行傳入的 beforeEach 函數 beforeEachs.forEach(beforeEach =>{ beforeEach(to, from, next) }) } } const routes = [ { path: '/', component: Home, beforeEnter: multipleBeforeEach(beforeEach1, beforeEach2) }, ... ]
上面的代碼中,我們將兩個 beforeEach 函數封裝成 multipleBeforeEach 函數。這個函數接收多個 beforeEach 函數作為參數,并返回一個新的函數。這個新的函數內部依次執行所有傳入的 beforeEach 函數。這樣,在路由中只需要調用一次 multipleBeforeEach 函數即可,不需要單獨為每個 beforeEach 函數寫一個 beforeEnter:。
const routes = [ { path: '/', component: Home, beforeEnter: multipleBeforeEach(beforeEach1, beforeEach2, beforeEach3, ...) }, ... ]
使用以上的方式實現多個 beforeEach 函數的調用,可以讓我們在保證寫法簡潔的同時,也更加方便地進行路由管理和權限驗證。
上一篇python 括號的區別
下一篇python 過慮非數字