watch '$route'(to,from)無(wú)效

watch '$route'(to,from)無(wú)效

組件代碼:

watch:{
     '$route' (to, from) {
         // 對(duì)路由變化作出響應(yīng)...
         console.log(to)
     }
},

路由配置:

{
    path:'/user/:id',
    name:'User',
    component:() => import ('../views/User'),
    children:[

    ]
 },

user 組件我讓其成為異步組件耐朴,是想實(shí)現(xiàn)點(diǎn)擊用戶頭像再跳轉(zhuǎn)路由進(jìn)入 /user充岛,從路由參數(shù)中獲取user id發(fā)起ajax請(qǐng)求獲取用戶信息

可最終得到的結(jié)果是:在user組件中使用watch 監(jiān)聽(tīng)路由的變化無(wú)效(我想在監(jiān)聽(tīng)中取出參數(shù))

注意:不管你的組件是不是異步組件,也會(huì)有此問(wèn)題

原因:

路由組件的渲染區(qū)域?yàn)?router-view瘤礁,作為頂層出口(官方是這么叫的)它將匹配到的路由組件渲染在該區(qū)域中阳懂,路由組件渲染默認(rèn)的方式是銷(xiāo)毀 - 創(chuàng)建梅尤,在組件中加入生命周期函數(shù)可以證明:

created(){
    console.log("user 組件被創(chuàng)建")
}

你可以使用瀏覽器的前進(jìn)后退來(lái)跳轉(zhuǎn)頁(yè)面柜思,也可以通過(guò)點(diǎn)擊你設(shè)置的頁(yè)面元素來(lái)進(jìn)行路由跳轉(zhuǎn)

解決方案:

正是因?yàn)榻M件被路由渲染出來(lái)的方式是銷(xiāo)毀 - 創(chuàng)建,那么組件實(shí)例中定義的一系列方法每創(chuàng)建一次組件new Vue(),方法都是新添加上去的巷燥,自然 $watch這個(gè)操作就監(jiān)聽(tīng)不到路由的變化赡盘,更不用說(shuō)定義在組件中的beforeRouteUpdate這種方法,所以,要想實(shí)現(xiàn)這個(gè)功能得讓組件成為 復(fù)用組件缰揪,只需加keep-alive即可

<keep-alive>
    <router-view></router-view>
</keep-alive>

此后陨享,你的 watch '$route' 將在路由改變的時(shí)候起作用!6巯佟抛姑!加上了keep-alive后你可以測(cè)試到在第一次跳轉(zhuǎn)路由后你定義的生命周期函數(shù) created()將不會(huì)再被調(diào)用。

閑言碎語(yǔ):

順帶提一句:出自圖靈叢書(shū) 深入淺出 Vue.js

在Vue.js 的整個(gè)生命周期中艳狐,初始化實(shí)例屬性是第一步定硝,那么我所要用到的 $watch這個(gè)東西在組件開(kāi)發(fā)中寫(xiě)作watch,這種東西在vue 中叫做 實(shí)例方法毫目。查API 可得到:

在這里插入圖片描述

并且以 $開(kāi)頭的屬性是提供給用戶使用的外部屬性蔬啡,以 _ 開(kāi)頭的是提供給內(nèi)部使用的內(nèi)部屬性

既然 生命周期中,初始化實(shí)例屬性是第一步镀虐,那初始化初始化實(shí)例方法自然在后頭箱蟆,所以會(huì)有點(diǎn)問(wèn)題!

該書(shū)我并沒(méi)有看完刮便,完全是根據(jù)我所遇到的問(wèn)題各處查了下資料空猜,屬于斷章取義,如有錯(cuò)誤恨旱,望指出辈毯,謝謝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市窖杀,隨后出現(xiàn)的幾起案子漓摩,更是在濱河造成了極大的恐慌,老刑警劉巖入客,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件管毙,死亡現(xiàn)場(chǎng)離奇詭異腿椎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)夭咬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)啃炸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人卓舵,你說(shuō)我怎么就攤上這事南用。” “怎么了掏湾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵裹虫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我融击,道長(zhǎng)筑公,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任尊浪,我火速辦了婚禮匣屡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拇涤。我一直安慰自己捣作,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鹅士。 她就那樣靜靜地躺著券躁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪如绸。 梳的紋絲不亂的頭發(fā)上嘱朽,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音怔接,去河邊找鬼搪泳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扼脐,可吹牛的內(nèi)容都是我干的岸军。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瓦侮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼艰赞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肚吏,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤方妖,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后罚攀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體党觅,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雌澄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杯瞻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镐牺。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖魁莉,靈堂內(nèi)的尸體忽然破棺而出睬涧,到底是詐尸還是另有隱情,我是刑警寧澤旗唁,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布畦浓,位于F島的核電站,受9級(jí)特大地震影響逆皮,放射性物質(zhì)發(fā)生泄漏宅粥。R本人自食惡果不足惜参袱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一电谣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抹蚀,春花似錦剿牺、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郑现,卻和暖如春湃崩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背接箫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工攒读, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辛友。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓薄扁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親废累。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邓梅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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

  • 1.css只在當(dāng)前組件起作用答:在style標(biāo)簽中寫(xiě)入scoped即可 例如: 2.v-if 和 v-show 區(qū)...
    小棋子js閱讀 516評(píng)論 0 0
  • 前言 使用Vue在日常開(kāi)發(fā)中會(huì)頻繁接觸和使用生命周期,在官方文檔中是這么解釋生命周期的: 每個(gè) Vue 實(shí)例在被創(chuàng)...
    心_c2a2閱讀 2,253評(píng)論 1 8
  • 一. Vue核心小知識(shí)點(diǎn) 1、vue中 key 值的作用 key 的特殊屬性主要用在 Vue的虛擬DOM算法邑滨,在新...
    素心_b7d9閱讀 768評(píng)論 0 0
  • 從感性的角度講日缨,我是不屑于用VUE,覺(jué)得react套件用起來(lái)更順手掖看,但是vue現(xiàn)在越來(lái)火匣距,所以也不得入vue(雜燴...
    zhoulujun閱讀 1,451評(píng)論 0 1
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,209評(píng)論 0 6