vue 路由傳參的幾種方式

編程式路由傳參

除了使用 <router-link> 創(chuàng)建 a 標簽來定義導航鏈接绊袋,我們還可以借助 router 的實例方法,通過編寫代碼來實現(xiàn)额湘。

  1. 通過 params 傳遞
const routes = [
  // 動態(tài)段以冒號開始
  { path: 'details/:id', name: "details", component: Details },
]

router.push() 方法的參數(shù)可以是一個字符串路徑七问,或者一個描述地址的對象。

const Home = {
  template: '<div @click="toDetails">To Details</div>',
  metheds: {
    toDetails() {
      // 字符串路徑
      this.$router.push('/details/001')
      // 帶有路徑的對象
      this.$router.push({path: '/details/001'})
      // 命名路由裆站,路由配置時,需要 name 字段
      this.$router.push({ name: 'details', params: { id: '001' } })
    }
  }
}

注意黔夭,如果提供了 path宏胯,params 會被忽略:

// `params` 不能與 `path` 一起使用
router.push({ path: '/details', params: { id: '001' } }) // -> /details

組件獲取數(shù)據(jù)

當一個路由被匹配時,它的 params 的值將在每個組件中以 this.$route.params 的形式暴露出來本姥。

const Details = {
  template: '<div>Details {{ $route.params.id }} </div>',
  created() {
    // 監(jiān)聽路由變化
    this.$watch(
      () => this.$route.params,
      (toParams, previousParams) => {
        // 對路由變化做出響應...
      }
    )
  },
}

通過 query 傳遞

這種情況下 query (查詢參數(shù))傳遞的參數(shù)會顯示在 url 后面肩袍,如:/details/001?kind=car。

路由配置

使用 query 時婚惫,以下三種方式都是可行的:
1.this.$router.push('/details/001?kind=car')
2.this.$router.push({ path: '/details/001', query: { kind: "car" }})
3.this.$router.push({ name: 'details', params: { id: '001' }, query: { kind: 'car' }})

組件獲取數(shù)據(jù)

const Details = {
  template: '<div>Details {{ $route.query.kind }} </div>',
  created() {
    // 監(jiān)聽路由變化
    this.$watch(
      () => this.$route.query,
      (toParams, previousParams) => {
        // 對路由變化做出響應...
      }
    )
  },
}

要對同一個組件中參數(shù)的變化做出響應的話氛赐,你可以簡單地 watch route 對象上的任意屬性,在這個場景中先舷,就是route.query

通過 hash 傳遞(同query)組件通過 $route.hash.slice(1) 獲取

通過 props 進行傳遞

在組件中使用 $route 會與路由緊密耦合艰管,這限制了組件的靈活性,因為它只能用于特定的 URL蒋川。雖然這不一定是件壞事牲芋,但我>們可以通過 props 配置來解除這種行為。

對象模式

路由配置

const routes = [
  {
    path: '/hello',
    component: Hello,
    props: { name: 'World' }
  }
]

組件中獲取數(shù)據(jù)

const Hello = {
  props: {
    name: {
      type: String,
      default: 'Vue'
    }
  },
  template: '<div> Hello {{ name }}</div>'
}

<Hello /> 組件默認顯示 Hello Vue捺球,但路由配置了 props 對象缸浦,當路由跳轉到 /hello 時,會顯示傳遞過來的 name氮兵, 頁面會顯示為 Hello World裂逐。

其他方式

1. 通過 Vuex 進行傳遞

    1. store 存儲狀態(tài);
    2. A 組件更改 store 中的狀態(tài)泣栈;
    3. B 組件從 store 中獲取卜高。

2.通過前端本地存儲等方式

    1. Local Storage;
    2. Session Storage;
    3. IndexedDB;
    4. Web SQL;
    5. Cookies。

以上內(nèi)容僅供自己學習南片,查找方便

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篙悯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铃绒,更是在濱河造成了極大的恐慌鸽照,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠悬,死亡現(xiàn)場離奇詭異矮燎,居然都是意外死亡定血,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匾效,你說我怎么就攤上這事却邓《医恚” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我濒析,道長,這世上最難降的妖魔是什么啥纸? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任号杏,我火速辦了婚禮,結果婚禮上斯棒,老公的妹妹穿的比我還像新娘盾致。我一直安慰自己,他們只是感情好荣暮,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布庭惜。 她就那樣靜靜地躺著,像睡著了一般穗酥。 火紅的嫁衣襯著肌膚如雪护赊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天迷扇,我揣著相機與錄音百揭,去河邊找鬼爽哎。 笑死蜓席,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的课锌。 我是一名探鬼主播厨内,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渺贤!你這毒婦竟也來了雏胃?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤志鞍,失蹤者是張志新(化名)和其女友劉穎瞭亮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體固棚,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡统翩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年仙蚜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厂汗。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡委粉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娶桦,到底是詐尸還是另有隱情贾节,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布衷畦,位于F島的核電站栗涂,受9級特大地震影響,放射性物質發(fā)生泄漏霎匈。R本人自食惡果不足惜戴差,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铛嘱。 院中可真熱鬧暖释,春花似錦、人聲如沸墨吓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帖烘。三九已至亮曹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秘症,已是汗流浹背照卦。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乡摹,地道東北人役耕。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像聪廉,于是被迫代替她去往敵國和親瞬痘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容