# `canActivate(transition) [-> Promise | Boolean]`
在驗證階段,當一個組件將要被切入的時候被調用。
### 參數
- [`transition {Transition}`](hooks.md#transition-object)
調用 `transition.next()` 可以斷定( resolve )此鉤子函數。調用 `transition.abort()` 可以無效化并取消此次切換。
### 預期返回值
- 可選擇性返回 Promise :
- `resolve(true)` -> `transition.next()`
- `resolve(false)` -> `transition.abort()`
- `reject(reason)` -> `transition.abort(reason)`
- 可選擇性返回 Boolean 值:
- `true` -> `transition.next()`
- `false` -> `transition.abort()`
### 詳情
此鉤子函數的調用順序是從上之下。子級組件視圖的 `canActivate` 鉤子僅在父級組件的 `canActivate` 被斷定( resolved )之后調用。
- 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
- 源碼
- 表單控件綁定