在用vue開發(fā)spa的時候,遇到過這樣一種情況,路由地址為http://localhost:8080/m/list/305038信息詳情頁面。
如圖所示:

圖片.png

圖片.png
但是在這信息詳情頁面下方有推薦信息,推薦信息的路由為
http://localhost:8080/m/list/305004。相同路由具有不同參數的鏈接,后臺又是根據信息id獲取數據的,我們希望在vue中created方法里從根據id從后臺獲取信息詳情。
created () {
this.loadData();
},
這是點擊推薦信息會發(fā)現根本沒有變化,路由參數變了,沒有像預想的一樣,調用created()方法中的this.loadData()向后臺請求加載數據。開始想是不是由于生命周期鉤子用的不對,緊接著又用了幾個鉤子例如activated() mounted() updated()發(fā)現皆不會被觸發(fā)。那該怎么辦? 聯想到vue的watch來觀察值的變化,試試能不能觀察路由參數變化,如果變化了,我就調用this.loadData()。沒想到還真的行,代碼如下:
watch:{
"$route":"loadData"
}
看代碼知其意,監(jiān)聽route,如果改變了則調用loadData方法。解決問題,嘿嘿??赡苁菍ue了解不夠深入,目前還沒有發(fā)現更好的解決方案。如果你有快快在下方留言告訴我吧。