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

詳解vue-router 2.0 常用基礎(chǔ)知識點(diǎn)之router-link

 更新時(shí)間:2017年05月10日 11:48:42   作者:NowTheFuture  
這篇文章主要介紹了詳解vue-router 2.0 常用基礎(chǔ)知識點(diǎn)之router-link,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前端采用前后端分離的方式進(jìn)行開發(fā),我們使用vue2.0框架,做單頁面應(yīng)用難免會(huì)用到vue-router,今天把項(xiàng)目中的用到router-link摘出來,一是想整理一下這些用法,方便下次快速查找,二是重新再過一下vue-router,增加熟悉度。也希望下面這些例子能幫到其他使用vue-router的朋友。

1,$route.params

類型: Object

一個(gè) key/value 對象,包含了 動(dòng)態(tài)片段 和 全匹配片段,如果沒有路由參數(shù),就是一個(gè)空對象。

path: '/detail/:id' 動(dòng)態(tài)路徑參數(shù) 以冒號開頭

const routes = [
 {path: '/detail/:id', component: Detail, name: 'detail', meta: {title: ''}},
 {path: '/activity', component: Activity, name: 'activity', meta: {isNeedAuth: false, title: '活動(dòng)現(xiàn)場'}},
];

還可以在一個(gè)路由中設(shè)置多段『路徑參數(shù)』,對應(yīng)的值都會(huì)設(shè)置到 $route.params 中

1個(gè)參數(shù)

模式: /user/:username

匹配路徑: /user/evan

$route.params:{ username: 'evan' }

多個(gè)參數(shù)

模式: /user/:username/post/:post_id

匹配路徑:/user/evan/post/123

$route.params:{ username: 'evan', post_id: 123 }

復(fù)用組件時(shí),想對路由參數(shù)的變化作出響應(yīng)的話,你可以簡單地 watch(監(jiān)測變化) $route 對象:

const User = {
 template: '...',
 watch: {
 '$route' (to, from) {
  // 對路由變化作出響應(yīng)...
 }
 }
}

或者像下面這樣,只要$route發(fā)生變化,就可以做某事:

export default {
 data () {
 return {}
 },
 watch: {
 // 如果路由有變化,會(huì)再次執(zhí)行該方法
 '$route': 'doSomeThing'
 },
 methods: {
 doSomeThing(){}
 }
}

綜合案例

// 當(dāng)匹配到一個(gè)路由時(shí),參數(shù)值會(huì)被設(shè)置到 this.$route.params,可以在每個(gè)組件內(nèi)使用。
// 可以通過this.$route.params.id來取上動(dòng)態(tài)的id
<router-link :to="{path: '/detail/' + this.$route.params.id}" >
此團(tuán)詳情
</router-link>

// 還可以用命名路由的方式:
<router-link :to="{ name: 'detail', params:{ id: this.$route.params.id }}" >
此團(tuán)詳情
</router-link>

// 還可以用router.push()的方式
router.push({name:'detail', params: { id: this.$route.params.id}})

// 以上三種方式都可以實(shí)現(xiàn)跳轉(zhuǎn),都可以通過this.$route.params來取到參數(shù)

2,$route.query

類型: Object

一個(gè) key/value 對象,表示 URL 查詢參數(shù)。例如,對于路徑 /foo?user=1,則有 $route.query.user == 1,如果沒有查詢參數(shù),則是個(gè)空對象。

// 動(dòng)態(tài)數(shù)據(jù)的查詢參數(shù)
 export default {
  data() {
   return {
    queryData: {}
   }
  },
  created() {
   this.$http.get(url)
    .then(function (response) {
     // ...
     if (data.code == 0) {
      this.queryData.order_id = data.content.order_id;
      this.queryData.business_id = data.content.business_id;
      this.queryData.coupon_id = data.content.coupons.coupon_id;
     }
     // ...
    }, function (response) {
     // ...
    })
  },
 }

// 使用
<router-link :to="{ path: '/backend/verify_coupon', query:this.queryData }">驗(yàn)證抵扣券</router-link>

3,定義路由的時(shí)候可以配置 meta 字段

// 舉個(gè)例子
const routes = [
 {path: '/activity', component: Activity, name: 'activity', meta: {isNeedAuth: false, title: '活動(dòng)現(xiàn)場'}},
];

實(shí)際工作中使用的時(shí)候就可以像下面這樣:

import { setTitleHack } from './utils';
import Activity from './views/activity.vue'
import Start from './views/start.vue'
// 定義路由的時(shí)候在meta中加入自定義字段
const routes = [
 {path: '/activity', component: Activity, name: 'activity', meta: {isNeedAuth: false, title: '活動(dòng)現(xiàn)場'}},
 {path: '/start', component: Start, name: 'start', meta: {isNeedAuth: false, title: '活動(dòng)現(xiàn)場'}},
];
const router = new VueRouter({...});
router.beforeEach((to, from, next) => {
 // 動(dòng)態(tài)修改頁面的title
 setTitleHack(to.meta.title);
  // 根據(jù)自定義的路由元信息來做判斷:
 if (to.meta.isNeedAuth !== false) {
  // do something
 } else {
  // do something
 }
 next();
});

4,append

設(shè)置 append 屬性后,則在當(dāng)前(相對)路徑前添加基路徑。例如,我們從 /a 導(dǎo)航到一個(gè)相對路徑 b,如果沒有配置 append,則路徑為 /b,如果配了,則為 /a/b

復(fù)制代碼 代碼如下:

<router-link :to="{path:'/coupon/detail/'+item.order_id, append:'true'}"></router-link>

如果上面這個(gè)路由是從home頁面跳轉(zhuǎn)過來,得到的結(jié)果就是/home/coupon/detail/id

5,active-class

類型: string

默認(rèn)值: "router-link-active"

設(shè)置 鏈接激活時(shí)使用的 CSS 類名。默認(rèn)值可以通過路由的構(gòu)造選項(xiàng) linkActiveClass 來全局配置。

復(fù)制代碼 代碼如下:

<router-link tag="li" :to="{path:'/home', activeClass: 'bottom-nav-active'}"></router-link>

7,綜合案例

// 命名路由,append 屬性,查詢參數(shù),router-link渲染成<li>標(biāo)簽
<router-link tag="li" :to="{name:'demandindex', append:true, query: {isFormBackend: 1}, activeClass: 'bottom-nav-active'}">
</router-link>

// to的值:字符串形式
<router-link to="banner.image_url" ></router-link>

// to的值:對象形式,拼接多個(gè)動(dòng)態(tài)參數(shù)
<router-link :to="{path: '/my/modify?modify=fullname&val=' + profile.nickname}" ></router-link>

// to的值:對象形式
<router-link :to="{path: '/home'}">返回首頁</router-link>

// to的值:對象形式,拼接動(dòng)態(tài)參數(shù)
<router-link to="{path: '/backend/coupon_order_detail/' + product.order_id+'?order_status='+product.order_status}"></router-link>

// to的值:對象形式,帶一個(gè)路徑參數(shù)
<router-link :to="{path: '/detail/' + this.$route.params.id}" ></router-link>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3中組件傳值的多種方法總結(jié)

    vue3中組件傳值的多種方法總結(jié)

    學(xué)習(xí)過vue2的寶子們肯定知道,組件傳值是vue項(xiàng)目開發(fā)過程中必不可少的功能場景,下面這篇文章主要給大家介紹了關(guān)于vue3中組件傳值的多種方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Vue.set 全局操作簡單示例

    Vue.set 全局操作簡單示例

    這篇文章主要介紹了Vue.set 全局操作,結(jié)合簡單實(shí)例形式分析了Vue.set 全局操作相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • vue+freemarker中遇到的坑及解決

    vue+freemarker中遇到的坑及解決

    這篇文章主要介紹了vue+freemarker中遇到的坑及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • VUE2.0自定義指令與v-if沖突導(dǎo)致元素屬性修改錯(cuò)位問題及解決方法

    VUE2.0自定義指令與v-if沖突導(dǎo)致元素屬性修改錯(cuò)位問題及解決方法

    這篇文章主要介紹了VUE2.0自定義指令與v-if沖突導(dǎo)致元素屬性修改錯(cuò)位問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • vscode 使用Prettier插件格式化配置使用代碼詳解

    vscode 使用Prettier插件格式化配置使用代碼詳解

    這篇文章主要介紹了vscode 使用Prettier插件格式化配置使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 在vant中使用時(shí)間選擇器和popup彈出層的操作

    在vant中使用時(shí)間選擇器和popup彈出層的操作

    這篇文章主要介紹了在vant中使用時(shí)間選擇器和popup彈出層的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 解析Vue2.0雙向綁定實(shí)現(xiàn)原理

    解析Vue2.0雙向綁定實(shí)現(xiàn)原理

    本篇文章主要介紹了解析Vue2.0雙向綁定實(shí)現(xiàn)原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Vue中的Token過期驗(yàn)證與動(dòng)態(tài)路由重定向詳解

    Vue中的Token過期驗(yàn)證與動(dòng)態(tài)路由重定向詳解

    這篇文章主要為大家詳細(xì)介紹了如何在 Vue 項(xiàng)目中實(shí)現(xiàn) Token 過期驗(yàn)證,并根據(jù) Token 的有效期動(dòng)態(tài)重定向用戶到首頁或登錄頁,感興趣的小伙伴可以了解下
    2025-03-03
  • Vue 全局loading組件實(shí)例詳解

    Vue 全局loading組件實(shí)例詳解

    這篇文章主要介紹了Vue 全局loading組件,需要的朋友可以參考下
    2018-05-05
  • Vue中使用防抖與節(jié)流的方法

    Vue中使用防抖與節(jié)流的方法

    這篇文章主要為大家介紹了Vue中使用防抖與節(jié)流的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論

芦溪县| 隆尧县| 灵川县| 邵阳县| 时尚| 阿拉善左旗| 盘锦市| 高碑店市| 长治县| 安乡县| 葫芦岛市| 大港区| 固原市| 郴州市| 东兰县| 凌源市| 扬中市| 兴安县| 子洲县| 阳山县| 关岭| 平昌县| 闻喜县| 南宁市| 兴海县| 开化县| 嘉黎县| 凌海市| 武乡县| 特克斯县| 贞丰县| 商丘市| 永康市| 松滋市| 仪征市| 鄂温| 磐石市| 德昌县| 绥江县| 凤山县| 洛隆县|