日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue-router 的基本使用

發布時間:2025/4/16 vue 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 router

2.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標簽聲明路由鏈接和占位符:

官網中聲明路由鏈接和占位符:
實際開發中:

<template><div class="app-container"><h1>App2 組件</h1><!-- 當安裝和配置了 vue-router 后,就可以使用 router-link 來替代普通的 a 鏈接了 --><!-- <a href="#/home">首頁</a> --><router-link to="/home">首頁</router-link><!-- 注意1:在 hash 地址中, / 后面的參數項,叫做“路徑參數” --><!-- 在路由“參數對象”中,需要使用 this.$route.params 來訪問路徑參數 --><!-- 注意2:在 hash 地址中,? 后面的參數項,叫做“查詢參數” --><!-- 在路由“參數對象”中,需要使用 this.$route.query 來訪問查詢參數 --><!-- 注意3:在 this.$route 中,path 只是路徑部分;fullPath 是完整的地址 --><!-- 例如: --><!-- /movie/2?name=zs&age=20 是 fullPath 的值 --><!-- /movie/2 是 path 的值 --><router-link to="/movie/1">洛基</router-link><router-link to="/movie/2?name=zs&age=20">雷神</router-link><router-link to="/movie/3">復聯</router-link><router-link to="/about">關于</router-link><hr /><!-- 只要在項目中安裝和配置了 vue-router,就可以使用 router-view 這個組件了 --><!-- 它的作用很單純:占位符 --><router-view></router-view></div> </template><script> export default {name: 'App' } </script><style lang="less" scoped> .app-container {background-color: #efefef;overflow: hidden;margin: 10px;padding: 15px;> a {margin-right: 10px;} } </style>

router-link相當于a標簽,觸發需要加載的頁面,需要加載的頁面被觸發之后,會自動加載到router-view標簽中顯示。

3. 聲明路由的匹配規則

在 src/router/index.js 路由模塊中,通過 routes 數組聲明路由的匹配規則。示例代碼如下:


實際開發中:

// src/router/index.js 就是當前項目的路由模塊 import Vue from 'vue' import VueRouter from 'vue-router'// 導入需要的組件 import Home from '@/components/Home.vue' import Movie from '@/components/Movie.vue' import About from '@/components/About.vue'import Tab1 from '@/components/tabs/Tab1.vue' import Tab2 from '@/components/tabs/Tab2.vue'import Login from '@/components/Login.vue' import Main from '@/components/Main.vue'// 把 VueRouter 安裝為 Vue 項目的插件 // Vue.use() 函數的作用,就是來安裝插件的 Vue.use(VueRouter)// 創建路由的實例對象 const router = new VueRouter({// routes 是一個數組,作用:定義 “hash 地址” 與 “組件” 之間的對應關系routes: [// 重定向的路由規則{ path: '/', redirect: '/home' },// 路由規則{ path: '/home', component: Home },// 需求:在 Movie 組件中,希望根據 id 的值,展示對應電影的詳情信息// 可以為路由規則開啟 props 傳參,從而方便的拿到動態參數的值{ path: '/movie/:mid', component: Movie, props: true },{path: '/about',component: About,// redirect: '/about/tab1',children: [// 子路由規則// 默認子路由:如果 children 數組中,某個路由規則的 path 值為空字符串,則這條路由規則,叫做“默認子路由”{ path: '', component: Tab1 },{ path: 'tab2', component: Tab2 }]},{ path: '/login', component: Login },{ path: '/main', component: Main }] })// 為 router 實例對象,聲明全局前置導航守衛 // 只要發生了路由的跳轉,必然會觸發 beforeEach 指定的 function 回調函數 router.beforeEach(function(to, from, next) {// to 表示將要訪問的路由的信息對象// from 表示將要離開的路由的信息對象// next() 函數表示放行的意思// 分析:// 1. 要拿到用戶將要訪問的 hash 地址// 2. 判斷 hash 地址是否等于 /main。// 2.1 如果等于 /main,證明需要登錄之后,才能訪問成功// 2.2 如果不等于 /main,則不需要登錄,直接放行 next()// 3. 如果訪問的地址是 /main。則需要讀取 localStorage 中的 token 值// 3.1 如果有 token,則放行// 3.2 如果沒有 token,則強制跳轉到 /login 登錄頁if (to.path === '/main') {// 要訪問后臺主頁,需要判斷是否有 tokenconst token = localStorage.getItem('token')if (token) {next()} else {// 沒有登錄,強制跳轉到登錄頁next('/login')}} else {next()} })export default router

總結

以上是生活随笔為你收集整理的vue-router 的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产日韩亚洲欧美 | 美女视频三区 | 午夜性生活片 | 日韩国产欧美一区二区三区 | 精品一区二区三区免费观看 | 在线播放一级片 | 国产日韩欧美久久 | 免费看女生隐私 | 怡红院一区二区三区 | 五月天婷婷在线播放 | julia中文字幕在线 | 欧美freesex黑人又粗又大 | 欧美日韩不卡一区二区三区 | 日韩视频一区在线 | 国产超级av | 可以在线观看av的网站 | 国模少妇一区二区 | 91久久精品美女高潮 | xxxxwwww国产 | 91成人免费在线观看 | 午夜不卡在线观看 | 国产精品一区二区三区四区 | 夫妻毛片 | 国产原创视频 | 女人久久久久 | 精品看片 | 午夜做爰xxxⅹ性高湖视频美国 | 五月天六月婷婷 | 欧美激情视频在线 | xx在线视频 | 久久国产精品无码一级毛片 | 午夜剧场黄色 | 欧美成人午夜精品久久久 | 四虎视频 | 人人射影院 | 日韩在线观看中文字幕 | 欧美日韩中文字幕在线观看 | 人乳videos巨大吃奶 | 国产欧美日韩精品在线 | 夏目彩春娇喘呻吟高潮迭起 | 免费人成视频在线 | 亚洲影视一区二区 | 丝袜一区二区三区 | 欧美黄色一级大片 | 又污又黄的视频 | 欧美xxxx性xxxxx高清 | 无码少妇精品一区二区免费动态 | 色哟哟视频在线观看 | 日韩欧美高清一区 | 人人干人人看 | 欧美日韩中文字幕在线观看 | 午夜欧美精品久久久久久久 | 男人与雌性宠物交啪啪 | 欧美性受xxxx黑人 | 超碰综合在线 | 奇米影视在线播放 | 天海翼av| 在线欧美亚洲 | 高清视频免费在线观看 | 91久久久国产精品 | 亚洲色图偷拍 | 岛国av动作片 | 天天综合网天天综合色 | 欧美 日韩 国产 在线观看 | 张津瑜国内精品www在线 | 日韩黄色片网站 | 精品少妇爆乳无码av无码专区 | 亚洲第一av网站 | 无码国产色欲xxxxx视频 | 欧美××××黑人××性爽 | 国产在线观看一区 | 国产一区一区 | 国产精品69毛片高清亚洲 | 亚洲爱爱片 | 人与动物毛片 | 日本高清免费不卡视频 | 国产午夜激情视频 | 开心色婷婷 | 一区二区三区精 | 国产熟妇与子伦hd | 午夜伦视频 | 久久精品亚洲一区 | 亚洲AV无码久久精品国产一区 | 91在线视频观看 | 无码人妻丰满熟妇精品区 | 国产伦精品一区二区三区免费 | 日韩亚洲第一页 | 欧美另类第一页 | 亚洲国产精品国自产拍久久 | 艳母动漫在线播放 | 污片免费在线观看 | 亚洲射吧 | 色爱av综合网| 蜜桃视频无码区在线观看 | 被黑人啪到哭的番号922在线 | 不卡在线一区 | 久久精品免费播放 | 久久国产经典视频 | 欧美特黄一区二区三区 |