# `router.beforeEach(hook)`
添加一個全局的前置鉤子函數,這個函數會在路由切換開始時調用。調用發生在整個切換流水線之前。如果此鉤子函數拒絕了切換,整個切換流水線根本就不會啟動。
你可以注冊多個全局的前置鉤子函數。這些函數會按照注冊的順序被調用。調用是異步的,后一個函數會等待前一個函數完成后才會被調用。
### 參數
- `hook {Function}`
此鉤子函數一個類型為[切換對象](../pipeline/hooks.html#transition-object)的參數。
### Example
簡單示例
``` js
router.beforeEach(function (transition) {
if (transition.to.path === '/forbidden') {
transition.abort()
} else {
transition.next()
}
})
```
使用 Promise 和 ES6
``` js
router.beforeEach(function ({ to, next }) {
if (to.path === '/auth-required') {
// 返回一個斷定會 true 或者 false 的 Promise
return AuthService.isLoggedIn()
} else {
next()
}
})
```
- vue
- 官方教程
- 起步
- 安裝
- 概述
- Vue 實例
- Class 與 Style 綁定
- 數據綁定語法
- 條件渲染
- 列表渲染
- 表單控件綁定
- 組件
- 計算屬性
- 自定義指令
- 自定義過濾器
- 方法與事件處理器
- 混合
- 插件
- 過渡
- 深入響應式原理
- 對比其它框架
- 構建大型應用
- API
- vue-router
- 安裝
- 基本用法
- 嵌套路由
- 路由對象和路由匹配
- 具名路徑
- 路由配置項
- router-view
- v-link
- 切換控制流水線
- 切換鉤子函數
- data
- activate
- deactivate
- canActivate
- canDeactivate
- canReuse
- API
- 路由實例屬性
- router.start
- router.stop
- router.map
- router.on
- router.go
- router.replace
- router.redirect
- router.alias
- router.beforeEach
- router.afterEach
- 文章
- VUE.JS: A (RE)INTRODUCTION
- 源碼
- 表單控件綁定