vue-router 的基本使用
生活随笔
收集整理的這篇文章主要介紹了
vue-router 的基本使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
vue-router 的基本使用
1. 什么是 vue-router
vue-router 是 vue.js 官方給出的路由解決方案。它只能結合 vue 項目進行使用,能夠輕松的管理 SPA 項中組件的切換。
vue-router 的官方文檔地址:https://router.vuejs.org/zh/
2. vue-router 安裝和配置的步驟
① 安裝 vue-router 包
② 創建路由模塊
③ 導入并掛載路由模塊
④ 聲明路由鏈接和占位符
2.1 在項目中安裝 vue-router
在 vue2 的項目中,安裝 vue-router 的命令如下:
2.2 創建路由模塊
在 src 源代碼目錄下,新建 router/index.js 路由模塊,并初始化如下的代碼:
import Vue from 'vue' import VueRouter from 'vue-router' import pathArr from '@/router/pathArr.js'// 導入需要的組件 import Login from '@/components/MyLogin.vue' import Home from '@/components/MyHome.vue'import Users from '@/components/menus/MyUsers.vue' import Rights from '@/components/menus/MyRights.vue' import Goods from '@/components/menus/MyGoods.vue' import Orders from '@/components/menus/MyOrders.vue' import Settings from '@/components/menus/MySettings.vue' import UserDetail from '@/components/user/MyUserDetail.vue'Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/', redirect: '/login' },// 登錄的路由規則{ path: '/login', component: Login },// 后臺主頁的路由規則{path: '/home',component: Home,redirect: '/home/users',children: [{ path: 'users', component: Users },{ path: 'rights', component: Rights },{ path: 'goods', component: Goods },{ path: 'orders', component: Orders },{ path: 'settings', component: Settings },// 用戶詳情頁的路由規則{ path: 'userinfo/:id', component: UserDetail, props: true }]}] })// 全局前置守衛 router.beforeEach(function(to, from, next) {if (pathArr.indexOf(to.path) !== -1) {const token = localStorage.getItem('token')if (token) {next()} else {next('/login')}} else {next()} })export default router2.3 導入并掛載路由模塊
在 src/main.js 入口文件中,導入并掛載路由模塊。示例代碼如下:
官網掛在路由模塊介紹:
// 0. 如果使用模塊化機制編程,導入Vue和VueRouter,要調用 Vue.use(VueRouter)// 1. 定義 (路由) 組件。 // 可以從其他文件 import 進來 const Foo = { template: '<div>foo</div>' } const Bar = { template: '<div>bar</div>' }// 2. 定義路由 // 每個路由應該映射一個組件。 其中"component" 可以是 // 通過 Vue.extend() 創建的組件構造器, // 或者,只是一個組件配置對象。 // 我們晚點再討論嵌套路由。 const routes = [{ path: '/foo', component: Foo },{ path: '/bar', component: Bar } ]// 3. 創建 router 實例,然后傳 `routes` 配置 // 你還可以傳別的配置參數, 不過先這么簡單著吧。 const router = new VueRouter({routes // (縮寫) 相當于 routes: routes })// 4. 創建和掛載根實例。 // 記得要通過 router 配置參數注入路由, // 從而讓整個應用都有路由功能 const app = new Vue({router }).$mount('#app')// 現在,應用已經啟動了!實際開發中:
import Vue from 'vue' import App from './App.vue' // 導入路由模塊,目的:拿到路由的實例對象 // 在進行模塊化導入的時候,如果給定的是文件夾,則默認導入這個文件夾下,名字叫做 index.js 的文件 //相當于import router from '@/router/index.js' //下面的這種寫法,程序會自動導入相應的index.js文件 import router from '@/router'Vue.config.productionTip = falsenew Vue({render: h => h(App),// 在 Vue 項目中,要想把路由用起來,必須把路由實例對象,通過下面的方式進行掛載// router: 路由的實例對象//下面是簡寫的方式,相當于: router:router//當key和value的值相同的時候就可以使用簡寫的方式router }).$mount('#app')2.4 聲明路由鏈接和占位符
在 src/App.vue 組件中,使用 vue-router 提供的router-link標簽和 router-view標簽聲明路由鏈接和占位符:
官網中聲明路由鏈接和占位符:
實際開發中:
router-link相當于a標簽,觸發需要加載的頁面,需要加載的頁面被觸發之后,會自動加載到router-view標簽中顯示。
3. 聲明路由的匹配規則
在 src/router/index.js 路由模塊中,通過 routes 數組聲明路由的匹配規則。示例代碼如下:
實際開發中:
總結
以上是生活随笔為你收集整理的vue-router 的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端路由的概念与原理
- 下一篇: vue-router 的常见用法