亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue動(dòng)態(tài)路由匹配和路由懶加載多種方法詳解

 更新時(shí)間:2023年06月13日 08:45:39   作者:C_心欲無(wú)痕  
這篇文章主要介紹了vue動(dòng)態(tài)路由匹配和路由懶加載,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1,動(dòng)態(tài)路由匹配

前言:

在日常開(kāi)發(fā)中,有一個(gè)商品列表頁(yè)面,點(diǎn)擊每一項(xiàng)可以看到詳情頁(yè)面,且樣式都是一樣的,那樣我們可以封裝一個(gè)詳情頁(yè)面,路由為/detail 不同的數(shù)據(jù) id或唯一標(biāo)識(shí)可以路由寫(xiě)成 /detail/id,這樣獲取id值就可以請(qǐng)求不同的數(shù)據(jù)并展示了;

所以這種場(chǎng)景使用動(dòng)態(tài)路由匹配是比較方便的;

動(dòng)態(tài)路由匹配模式

你可以在同一個(gè)路由中設(shè)置有多個(gè) 路徑參數(shù),它們會(huì)映射到 $route.params 上的相應(yīng)字段。例如

匹配模式匹配路徑$route.params
/users/:username/users/Eula{ username: 'Eula' }
/users/:username/age/:18/users/Eula/age/18{ username: 'Eula', postId: '18' }

上面 username對(duì)應(yīng)的是Eula(尤菈) ;age對(duì)應(yīng)的是18;

定義:

首先在路由列表定義一個(gè)動(dòng)態(tài)路由,主要表現(xiàn)為 /:id 動(dòng)態(tài)字段以冒號(hào)開(kāi)頭;

// 這是動(dòng)態(tài)路由 加上:/:id
      {
        path: '/detail/:id',
        name: 'Detail',
        meta: { title: '詳情頁(yè)面' },
        component: () => import('../views/routers/detail.vue'),
      },

使用:

在需要進(jìn)行跳轉(zhuǎn)的地方直接在path后面添加參數(shù)即可,如下:

 this.$router.replace({path:'/detail/001'})

獲?。?/h3>

獲取傳過(guò)來(lái)的參數(shù)主要有以下幾種方式:

第一種

 created() {
    // 第一種:這里能夠獲取動(dòng)態(tài)路由的傳參
    console.log('第一種獲取方式:', this.$route.params); 
  },

打印結(jié)果 :{id: ‘001’}

第二種

使用watch監(jiān)聽(tīng) 路由的變化;

// 第二種:監(jiān)聽(tīng)路由
  watch: {
    $route: {
      immediate: true,
      handler(newV, oldV) {
        console.log('第二種獲取方式:', newV.params); //{id: '001'}
      },
    },
  },

第三種

使用路由鉤子函數(shù)beforeRouteEnter 的to參數(shù)也能拿到id值;但想要獲取this需要使用vm;

  beforeRouteEnter(to, from, next) {
    if (to.params.id) {
      console.log('第三種獲取方式:', to.params);
      next((vm) => {
        // 通過(guò) `vm` 訪問(wèn)組件實(shí)例 相當(dāng)于this
        // 此處可以請(qǐng)求數(shù)據(jù)
      });
    } else {
      next();
    }
  },

2,路由懶加載

當(dāng)打包構(gòu)建應(yīng)用時(shí),JavaScript 包會(huì)變得非常大,影響頁(yè)面加載。如果我們能把不同路由對(duì)應(yīng)的組件分割成不同的代碼塊,然后當(dāng)路由被訪問(wèn)的時(shí)候才加載對(duì)應(yīng)組件,這樣就會(huì)更加高效。

Vue Router 支持開(kāi)箱即用的動(dòng)態(tài)導(dǎo)入,這意味著你可以用動(dòng)態(tài)導(dǎo)入代替靜態(tài)導(dǎo)入:

其實(shí)就是寫(xiě)成 箭頭函數(shù)的形式:

// 將
// import UserDetails from './views/UserDetails.vue'
// 替換成
const UserDetails = () => import('./views/UserDetails.vue')

還可以把組件按組分塊進(jìn)行打包在一起

使用 webpack有時(shí)候我們想把某個(gè)路由下的所有組件都打包在同個(gè)異步塊 (chunk) 中。只需要使用命名 chunk,一個(gè)特殊的注釋語(yǔ)法來(lái)提供 chunk name (需要 Webpack > 2.4):

const UserDetails = () =>
  import(/* webpackChunkName: "group-user" */ './UserDetails.vue')
const UserDashboard = () =>
  import(/* webpackChunkName: "group-user" */ './UserDashboard.vue')
const UserProfileEdit = () =>
  import(/* webpackChunkName: "group-user" */ './UserProfileEdit.vue')

webpack 會(huì)將任何一個(gè)異步模塊與相同的塊名稱(chēng)組合到相同的異步塊中。

到此這篇關(guān)于vue動(dòng)態(tài)路由匹配和路由懶加載的文章就介紹到這了,更多相關(guān)vue動(dòng)態(tài)路由路由懶加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue使用blob下載文件遇到的問(wèn)題小結(jié)

    vue使用blob下載文件遇到的問(wèn)題小結(jié)

    Blob?對(duì)象表示一個(gè)不可變、原始數(shù)據(jù)的類(lèi)文件對(duì)象,這篇文章主要介紹了vue使用blob下載文件遇到的問(wèn)題記錄,需要的朋友可以參考下
    2024-02-02
  • Vue項(xiàng)目中實(shí)現(xiàn)描點(diǎn)跳轉(zhuǎn)scrollIntoView的案例

    Vue項(xiàng)目中實(shí)現(xiàn)描點(diǎn)跳轉(zhuǎn)scrollIntoView的案例

    這篇文章主要介紹了Vue項(xiàng)目中實(shí)現(xiàn)描點(diǎn)跳轉(zhuǎn)scrollIntoView的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue webpack實(shí)用技巧總結(jié)

    vue webpack實(shí)用技巧總結(jié)

    本篇文章給大家總結(jié)了vue+webpack的實(shí)用技巧以及相關(guān)實(shí)例代碼分享,有興趣的朋友可以參考學(xué)習(xí)下。
    2018-04-04
  • Vue之插件詳解

    Vue之插件詳解

    這篇文章主要為大家介紹了Vue之插件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助,希望能夠給你帶來(lái)幫助
    2021-11-11
  • Vue-Router實(shí)現(xiàn)頁(yè)面正在加載特效方法示例

    Vue-Router實(shí)現(xiàn)頁(yè)面正在加載特效方法示例

    這篇文章主要給大家介紹了利用Vue-Router實(shí)現(xiàn)頁(yè)面正在加載特效方法示例,文中給出了詳細(xì)的示例代碼,相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè)的方法

    vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè)的方法

    這篇文章主要介紹了vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • vue.js整合vux中的上拉加載下拉刷新實(shí)例教程

    vue.js整合vux中的上拉加載下拉刷新實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于vue.js整合vux中上拉加載下拉刷新的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • SpringBoot+Vue3實(shí)現(xiàn)文件的上傳和下載功能

    SpringBoot+Vue3實(shí)現(xiàn)文件的上傳和下載功能

    上傳文件和下載文件是我們平時(shí)經(jīng)常用到的功能,接下來(lái)就讓我們用SpringBoot,Vue3和ElementPlus組件實(shí)現(xiàn)文件的上傳和下載功能吧,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • axios攜帶cookie配置詳解(axios+koa)

    axios攜帶cookie配置詳解(axios+koa)

    這篇文章主要介紹了axios攜帶cookie配置詳解(axios+koa),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Vuex入門(mén)之Module使用詳解

    Vuex入門(mén)之Module使用詳解

    這篇文章主要介紹了Vuex入門(mén)之Module使用詳解,由于使用單一狀態(tài)樹(shù),應(yīng)用的所有狀態(tài)會(huì)集中到一個(gè)比較大的對(duì)象,當(dāng)應(yīng)用變得非常復(fù)雜時(shí),store?對(duì)象就有可能變得相當(dāng)臃腫,需要的朋友可以參考下
    2023-11-11

最新評(píng)論