vue框架-學習記錄
前段時間在做vue項目時,遇到挺多問題,想簡單總結一下:
1、關於父組件,子組件的通信
網上有很多這方面的講解,講解也比較細致,我主要總結了自己在項目中需要的:
【1】父組件—子組件
也就是“屬性向下走”,即在父組件中通過標簽屬性傳值,子組件利用‘props’接收後,在子組件中便可使用;
【2】子組件—父組件
子組件中可以用“事件向上走”的方式傳遞參數到父組件,
即:this.$emit(‘ myevent’,參數 )
父組件再以一個方法接收子組件傳遞的參數
GetData(data){
this.data = data
}
【小結】:最主要的是記住:屬性往下走,事件向上走
2、Vue的路由問題
看了網上的很多帖子,簡單點說:
【1】路由跳轉可以通過<router-link :to=’’></router-link>,也可以通過“this.$router.push(‘’)”,
當然,都是可以加參數的,加參數也很簡單,
第一步:在main.js中的對應路由處加上相應地參數名;
第二步:在頁面文件中的路徑後面直接跟上參數就可以了;
第三步:調用,直接“this.$route.params.參數名”【這裏這樣用是因為項目中自己用的是router.push()的方式跳轉】
【以上是最簡單的路由跳轉方式】
【問題:“路由監聽”】還遇到一個高級一點的,就是在子組件中通過不同的參數變換不斷請求刷新父組件,這個查閱了相關的網頁,也看了一些例子,一般情況下,都是可以用監聽路由解決的,也就是:
第一步:子組件中正常跳轉的this.$router.push(‘’)寫好;
第二步:在父組件中監聽路由的變化:
Watch:{
‘$router’(to, from) {
// 對路由變化作出響應...
//這裏可以重新請求數據
}
}
//當參數發生改變,通過watch監聽到地址欄的變化,然後再重新請求一遍數據。
除了watch監聽路由變化以外,路由中的組件鉤子函數beforeRouteUpdate也可以,
beforeRouteUpdate (to, from, next){
console.log(‘component beforeRouteUpdate‘);
next();
}
關於路由這方面的鉤子函數,網上有很多介紹,想要深入理解,可以去看看
https://segmentfault.com/a/1190000008879966
前端新手,歡迎指教!
vue框架-學習記錄