91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue路由傳參及props實例分析

發布時間:2022-07-30 14:18:06 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

這篇文章主要講解了“Vue路由傳參及props實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue路由傳參及props實例分析”吧!

一、路由傳參

路由傳參總的來說有兩種方式,query和params,配合聲明式導航與編程式導航,各有不同的幾種寫法;

query傳參

query配合聲明式導航
//路由配置
 {
    path: '/a01',
    name: 'a01',
    component: a01
  }
//傳參方式1--通過url拼接,使用?分割
 <router-link to="/a01?data=a01">a01</router-link>
 //傳參方式2--傳入對象
<router-link :to="{ path: '/a01', query: { data: 'a01' } }">a02</router-link>
query配合編程式導航

路由配置方式不變;

//綁定事件
<span @click="btn('/a01', 'a01')">b01</span>
//處理路由方式1,通過path配合query
 btn(path, data) {
      this.$router.push({
        path,
        query: {
          data,
        },
      });
    },
 //處理路由方式2,通過name配合query
    btn1(name, data) {
      this.$router.push({
        name,
        query: {
          data,
        },
      });
    },
query傳參的特點

1.參數在url中展現,使用?分割。屬性和值以鍵值對形式存在

2.子組件通過$route.query.xxx方式獲取參數(xxx為自己定義的參數名)

params傳參

params傳參分為兩種情況,路徑占位與不占位

路徑使用參數占位時

params配合聲明式導航:

//路由聲明需要使用‘:'占位
{
    path: '/a02/:data',
    name: 'a02',
    component: a02
  }
//傳參方式1--url拼接,不需要?分割
<router-link to="/a02/a02">a02</router-link>
//傳參方式2--傳對象
<router-link :to="{ path: '/a02/a02' }">a02.1</router-link>

params配合編程式導航:

  btn1(name, data) {
      this.$router.push({
        name,
        params: {
          data,
        },
      });
    },

params傳參配合路徑占位的特點:

1.參數在url中展現,沒有?=等額外標簽

2.子組件以$route.params.xxx方式獲取參數(xxx為自己定義的參數名)

路徑不使用占位時

聲明式導航

<router-link :to="{ name:'a02',params:{data:'a02'} }">a02.1</router-link>

注意!!需要使用name,不可以使用path,官網解釋如下:

注意:如果提供了 path,params 會被忽略,你需要提供路由的 name 或手寫完整的帶有參數的 path

編程式導航

//路由配置
{
    path: '/a03',
    name: 'a03',
    component: a03
  }
  //路由跳轉
 <span @click="btn3('a03', 'a03')">b04</span>
 btn3(name, data) {
      this.$router.push({
        name,
        params: {
          data,
        },
      });
    },

params傳參占位的特點:

1.參數在不在url體現

2.刷新后數據丟失

二、props解耦

vue的組件是可以復用的,但是路由給子組件傳值后,通過$route獲取參數會導致子組件無法復用,解決這個問題,需要用到props解耦;

1.props布爾值

具體使用:

1.在路由配置時使用props

{
    path: '/a02/:data',
    name: 'a02',
    component: a02,
    //使用props傳參
    props: true
  }

2.父組件傳參,沒有變化

3.子組件使用props接收

<template>
  <p>{{ data }}</p>
</template>
<script>
export default {
  props: {
    data: {
      type: String,
    },
  },
};
</script>

props為布爾值 true 開啟props接收,false關閉。

上例我們演示的就是這樣的情況,但是,props為布爾值時,只適用于params傳參,對query不適用;

2.props函數模式

props配置為函數,可以獲取query方式的傳值,通過route.query.xxx方式

//配置
 {
    path: '/a01',
    name: 'a01',
    component: a01,
    props: (route) => ({ data: route.query.data })
  }
//傳參--與query一致
<router-link to="/a01?data=a01">a01</router-link>
//接收
<template>
  <p>{{ data }}</p>
</template>
<script>
export default {
  props: {
    data: {
      type: String,
    },
  },
};
</script>

3.props對象模式

props對象模式直接傳遞固定值,不需要再傳參;

//配置
 {
    path: '/a01',
    name: 'a01',
    component: a01,
    props: {data:'123'}
  }

感謝各位的閱讀,以上就是“Vue路由傳參及props實例分析”的內容了,經過本文的學習后,相信大家對Vue路由傳參及props實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石狮市| 横山县| 罗山县| 孝感市| 瓮安县| 镇巴县| 樟树市| 苍山县| 本溪市| 水富县| 成武县| 故城县| 探索| 禹州市| 青冈县| 卓尼县| 五莲县| 金平| 城固县| 安康市| 门源| 当阳市| 油尖旺区| 安达市| 潮州市| 崇信县| 临城县| 巴林右旗| 喀喇沁旗| 阿拉善右旗| 小金县| 西充县| 扶沟县| 泰州市| 彭水| 贵德县| 汉寿县| 安丘市| 平江县| 芜湖县| 阿合奇县|