最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue-router安裝和使用詳解

 更新時間:2023年08月08日 11:41:56   作者:七月J  
vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用,分步驟介紹了安裝和使用vue-router的方法,感興趣的朋友跟隨小編一起看看吧

1、認(rèn)識vue-router

目前前端流行的三大框架,都有自己的路由實現(xiàn):

  • Angular的ngRouter
  • React的ReactRouter
  • Vue的vue-router

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。我們可以訪問其官方網(wǎng)站對其進(jìn)行學(xué)習(xí):https://router.vuejs.org/zh/

vue-router是基于路由和組件的

  • 路由用戶設(shè)定訪問路徑的,將路徑和組件映射起來。
  • 在vue-router的單頁面應(yīng)用中,頁面的路徑的改變就是組件的切換

2、安裝和使用vue-router

第一步:安裝vue-router npm install vue-router --save

第二步:在模塊化工程中使用它(因為是一個插件,所以可以通過Vue.use()來安裝路由功能)

  • 導(dǎo)入路由對象,并且調(diào)用Vue.use(VueRouter)
  • 創(chuàng)建路由實例,并且傳入路由映射配置
  • 在Vue實例中掛載創(chuàng)建的路由實例

使用vue-router的步驟:

  • 第一步:創(chuàng)建路由組件
  • 第二步:配置路由映射:組件和路徑映射關(guān)系
  • 第三步:使用路由:通過 <router-link> <router-view>

代碼實現(xiàn)步驟:

創(chuàng)建router實例

在這里插入圖片描述

掛載到Vue實例中

在這里插入圖片描述

第一步:創(chuàng)建路由組件

在這里插入圖片描述

第二步:配置組件和路由的映射關(guān)系

在這里插入圖片描述

第三步:使用路由

在這里插入圖片描述

  • <router-link> :該標(biāo)簽是一個vue-router中已經(jīng)內(nèi)置的組件,他會被渲染成一個 <a> 標(biāo)簽。
  • <router-view> :該標(biāo)簽會根據(jù)當(dāng)前的路徑,動態(tài)渲染出不同的組件。

3、路由的默認(rèn)路徑

默認(rèn)情況下,進(jìn)入網(wǎng)站的首頁,我們希望渲染首頁的內(nèi)容。但是我們的實現(xiàn)中,默認(rèn)沒有顯示首頁組件,必須讓用戶點擊才可以。

如何可以讓路徑默認(rèn)跳轉(zhuǎn)到首頁,并且渲染首頁組件呢?我們需要多配置一個映射就可以了

{
  path: '/',
  redirect: '/home'
},

配置解析:

  • 我們在routes中又配置一個映射
  • path配置的是根路徑:/
  • redirect是重定向,也就是我們將根路徑重定向到/home的路徑下,這樣就可以得到我們想要的結(jié)果了。

4、HTML5的History模式

改變路徑的方式有兩種:

  • URL 的 hash
  • HTML5 的 history
  • 默認(rèn)情況下,路徑的改變使用的URL的 hash

如果希望使用HTML5的history模式,進(jìn)行如下的配置:

在這里插入圖片描述

5、router-link屬性介紹

  • to:用于指定跳轉(zhuǎn)的路徑
  • tag:tag可以指定 <router-link> 之后渲染成什么組件,比如我們下面的代碼會被渲染成一個 <li> 元素,而不是 <a> 。 如: <router-link to='/home' tag='li'>
  • replace:replace不會留下history記錄,所以指定replace的情況下,后退鍵返回不能返回到上一個頁面中
  • active-class:當(dāng) <router-link> 對應(yīng)的路由匹配成功時,會自動給當(dāng)前元素設(shè)置一個router-link-active的class,設(shè)置active-class可以修改默認(rèn)的名稱。

6、路由代碼跳轉(zhuǎn)

有的時候,頁面的跳轉(zhuǎn)可能需要執(zhí)行相應(yīng)的JavaScript代碼,這個時候,就可以使用第二種跳轉(zhuǎn)方式了。

比如我們將代碼修改如下:

在這里插入圖片描述

7、動態(tài)路由

在某些情況下,一個頁面的path路徑可能是不確定的,比如我們進(jìn)入用戶界面時,希望是如下的路徑:

  • /user/aaa或/user/bbb
  • 除了有前面的/user之外,后面還跟上了用戶的ID
  • 這種path和Component的匹配關(guān)系,我們稱之為動態(tài)路由(也是路由傳遞數(shù)據(jù)的一種方式)

在這里插入圖片描述

8、路由懶加載

路由懶加載的方式

方式一:結(jié)合Vue的異步組件和Webpack的代碼分析

const Home = resolve => { require. ensure(['../ components/Home.vue'], () => { resolve(require('../ components/Home.vue')) })};

方式二:AMD寫法

const About = resolve => require([' ../ components/ About.vue'], resolve);

???????方式三:在ES6中,我們可以有更加簡單的寫法來組織Vue異步組件和Webpack的代碼分割

const Home = () => import(' . ./ components/Home.vue ' )

路由懶加載的效果

在這里插入圖片描述

9、嵌套路由實現(xiàn)

在這里插入圖片描述

10、傳遞參數(shù)的方式

傳遞參數(shù)主要有兩種類型:params和query

  • params的類型:
    • 配置路由格式:/router/:id
    • 傳遞的方式:在path后面跟上對應(yīng)的值
    • 傳遞后形成的路徑:/router/123,/router/abc
  • query的類型:
    • 配置路由格式:/router,也就是普通配置
    • 傳遞的方式:對象中使用query的key作為傳遞方式
    • 傳遞后形成的路徑:/router?id= 123,/router?id=abc

11、導(dǎo)航守衛(wèi)的使用

我們可以利用beforeEach來完成標(biāo)題的修改

  • 首先,我們可以在鉤子當(dāng)中定義一些標(biāo)題,可以利用mate來定義
  • 其次,利用導(dǎo)航守衛(wèi)修改我們的標(biāo)題

導(dǎo)航鉤子的三個參數(shù)解析:

  • to:即將要進(jìn)入的目標(biāo)的路由對象
  • from:當(dāng)前導(dǎo)航即要離開的路由對象
  • next:調(diào)用該方法后,才能進(jìn)入下一個鉤子

在這里插入圖片描述

如果是后置鉤子,也就是afterEach,不需要主動調(diào)用next()函數(shù)。

上面我們使用的導(dǎo)航守衛(wèi),被稱之為全局守衛(wèi)。

12、TabBar實現(xiàn)思路

  • 如果在下方有兩個單獨的TabBar組件,你如何封裝
  • 自定義TabBar組件,在APP中使用
  • 讓TabBar處于底部,并且設(shè)置相關(guān)的樣式
  • TarBar中顯示的內(nèi)容由外界決定
  • 定義插槽
  • flex布局平分TabBar
  • 自定義TarBarItem,可以傳入圖片和文字
  • 定義TabBarItem,并且定義兩個插槽:圖片、文字。
  • 給兩個插槽外層包裝div,用于設(shè)置樣式。
  • 填充插槽,實現(xiàn)底部TabBar的效果。
  • 傳入高亮圖片
  • 定義另外一個插槽,插入active-icon的數(shù)據(jù)
  • 定義一個變量isActive,通過v-show來決定是否顯示對應(yīng)的icon
  • TabBarItem綁定路由數(shù)據(jù)
  • 安裝路由:npm install vue-route --save
  • 完成router/index.js的內(nèi)容,以及創(chuàng)建對應(yīng)的組件
  • main.js中注冊router
  • APP中加入<router-view>組件
  • 點擊item跳轉(zhuǎn)到對應(yīng)路由,并且動態(tài)決定isActive
  • 監(jiān)聽item的點擊,通過this.$router.replace()替換路由路徑
  • 通過this.$route.path.indexOf(this.link) !== -1來判斷是否是active
  • 動態(tài)計算active樣式
  • 封裝新的計算屬性:this.isActive ? {'color': 'red'}:{}

效果圖:

在這里插入圖片描述

到此這篇關(guān)于vue-router 詳解的文章就介紹到這了,更多相關(guān)vue-router 詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue項目添加動態(tài)瀏覽器頭部title的方法

    Vue項目添加動態(tài)瀏覽器頭部title的方法

    這篇文章主要介紹了Vue項目添加動態(tài)瀏覽器頭部title的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue-router鉤子執(zhí)行順序示例解析

    vue-router鉤子執(zhí)行順序示例解析

    這篇文章主要為大家介紹了vue-router鉤子執(zhí)行順序示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Vue實現(xiàn)動態(tài)顯示表單項填寫進(jìn)度功能

    Vue實現(xiàn)動態(tài)顯示表單項填寫進(jìn)度功能

    這篇文章主要介紹了Vue實現(xiàn)動態(tài)顯示表單項填寫進(jìn)度功能,此功能可以幫助用戶了解表單填寫的進(jìn)度和當(dāng)前狀態(tài),提高用戶體驗,通常實現(xiàn)的方式是在表單中添加進(jìn)度條,根據(jù)用戶填寫狀態(tài)動態(tài)更新進(jìn)度條,感興趣的同學(xué)可以參考下文
    2023-05-05
  • Vue2 Vue3 Scoped 樣式穿透問題

    Vue2 Vue3 Scoped 樣式穿透問題

    Vue中scoped樣式的作用是通過在DOM結(jié)構(gòu)和CSS樣式上添加唯一標(biāo)記來實現(xiàn)樣式私有化和模塊化,這一功能是通過PostCSS轉(zhuǎn)譯實現(xiàn)的,總結(jié)了三條渲染規(guī)則:1. 為HTML DOM節(jié)點添加不重復(fù)的data屬性;2. 在每個CSS選擇器末尾添加當(dāng)前組件的data屬性選擇器
    2025-01-01
  • 一篇文章帶你了解vue路由

    一篇文章帶你了解vue路由

    這篇文章主要為大家詳細(xì)介紹了vue的路由,路由的本質(zhì)就是一種對應(yīng)關(guān)系,比如說我們在url地址中輸入我們要訪問的url地址之后,瀏覽器要去請求這個url地址對應(yīng)的資源,本文具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 一文讀懂vue動態(tài)屬性數(shù)據(jù)綁定(v-bind指令)

    一文讀懂vue動態(tài)屬性數(shù)據(jù)綁定(v-bind指令)

    這篇文章主要介紹了vue動態(tài)屬性數(shù)據(jù)綁定(v-bind指令)的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 詳解Vue的數(shù)據(jù)及事件綁定和filter過濾器

    詳解Vue的數(shù)據(jù)及事件綁定和filter過濾器

    這篇文章主要為大家介紹了Vue的數(shù)據(jù)及事件綁定和filter過濾器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Vue計時器的用法詳解

    Vue計時器的用法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue計時器的用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Vue使用axios進(jìn)行g(shù)et請求拼接參數(shù)的2種方式詳解

    Vue使用axios進(jìn)行g(shù)et請求拼接參數(shù)的2種方式詳解

    axios中post請求都是要求攜帶參數(shù)進(jìn)行請求,這篇文章主要給大家介紹了關(guān)于Vue使用axios進(jìn)行g(shù)et請求拼接參數(shù)的2種方式,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Vue3 中 watch的 flush 選項(默認(rèn)無/`post`/`sync`)的區(qū)別全解析

    Vue3 中 watch的 flush 選項(默認(rèn)無/`post`/`sync`

    文章介紹了Vue3中watch的flush選項,解釋了三種模式(默認(rèn)pre、post、sync)的工作機制和適用場景,并提供了代碼示例進(jìn)行對比,強調(diào)了在90%的場景下選擇post模式以確保操作DOM的正確性,感興趣的朋友跟隨小編一起看看吧
    2026-03-03

最新評論

宣恩县| 晋江市| 汝城县| 鄂尔多斯市| 大理市| 土默特右旗| 台中市| 滦平县| 蓬安县| 巴彦淖尔市| 新源县| 昂仁县| 梨树县| 平乐县| 天全县| 正蓝旗| 仙游县| 清河县| 宁乡县| 富川| 广州市| 大石桥市| 黄陵县| 临沧市| 海兴县| 建始县| 大竹县| 鲁山县| 化州市| 辉南县| 浦城县| 饶河县| 寻甸| 满洲里市| 弋阳县| 靖安县| 图木舒克市| 花莲县| 宜兴市| 鹤岗市| 龙州县|