目的: 瞭解 vue-router 的使用javascript
閱讀時長: 5 分鐘html
來源: 並不是原創,整理自視頻前端
主要內容vue
router.gif java
1-1. 創建一個Route的文件夾,新建index.jsvue-router
import Vue from 'vue';
import VueRouter from 'vue-router';
import Routes from './routes.js'
Vue.use(VueRouter);
export default new VueRouter {
mode: 'hash',
routes
}
複製代碼
以上代碼注意兩點:bash
第一點: vue 的 第三方組件,都須要經過Vue.use( . . . )的方式去 install 組件。app
$router : 包含全部的方法學習
$route : 包含全部的屬性this
第二點: export default new VueRouter ({ })
裏面有各類屬性和路由的映射表
1-2: 創建routes.js
import Home from '../view/Home.vue';
...
export default [
{
path: '/', // 重定向到home頁面
redirect: '/home'
},
{
path: '/home',
component: Home
}
...
]
複製代碼
1-3: main.js 中註冊 router
...
import router from './router'
...
new Vue({
router,
render: h => h(App),
}).$mount('#app')
複製代碼
OK: 到這裏,基本路由就已經實現了
我們去app.js使用router-link 和 router-view 吧
<template>
<div id="app">
<ul class="nav">
<li class="nav-item">
<router-link class="nav-link" to="/home">Home</router-link>
</li>
</ul>
<router-view></router-view>
</div>
</template>
複製代碼
{
path: '/home',
component: () => import('../view/Home.vue')
}
複製代碼
{
path: '/user',
component: User,
// child 下面放須要嵌套的路徑和視圖
children: [
...
{
path: '/add',
name: 'userAdd',
component: () => import('../view/UserAdd.vue')
}
...
]
},
複製代碼
beforeRouterUpdate 用在路由參數更新了,可是路由沒有更新時使用。
router.beforeEach((to, from, next) => {
// 每一個路由鉤子都會有三個參數,是to、from、next
// 具體如何使用,我會單獨寫一個使用jwt權限控制的文章,在那裏面結合實際使用來講明三個參數的使用和路由鉤子的使用狀況
})
複製代碼
這裏,我只聊了下執行順序,具體的能夠參照官方手冊,或者關注我下次的權限控制篇。
參數的傳遞方式有兩種
路由:/detail/1 Vs 路徑:/detail?id=1
vue代碼以下:
<router-link to="/user/detail/1">用戶1</router-link>
-----
routes代碼以下:
{
// 路徑裏面傳遞參數是經過斜線傳遞的:好比/user/detail/1
path: 'detail/:id',
name: 'userDetail',
component: () => import('../view/UserDetail.vue')
}
----
這種參數在組件裏面如何獲取呢?
this.$route.params.id
複製代碼
<router-link to="/user/detail?id=1">用戶1</router-link>
這種傳遞方式如何在組件裏面獲取參數呢?
this.$route.query.id
複製代碼
總結: 本文簡單的聊了一下,如何去初始化一個路由,嵌套路由,路由鉤子的執行順序以及參 數的傳遞方式。
還有路由守衛在權限控制中使用狀況並未介紹,我將在下一篇去寫一個完整的小demo,講述路由鉤子在權限控制中的使用,jwt的使用,已及權限控制實現的基本實現。
ps: 我是一個前端初學者,博客徹底是記錄本身學習的一種方式,所寫文字確定有不清晰和不完善以及錯誤的地方。若是不妥之處,但願大神的批評指正,將不勝感激。
謝謝觀看!
我是海明月,前端小學生。