“约见”面试官系列之常见面试题之第九十九篇之router的钩子函数(建议收藏)
當(dāng)使用路由參數(shù)時(shí),例如從?/user/aside導(dǎo)航到?/user/foo,原來(lái)的組件實(shí)例會(huì)被復(fù)用。因?yàn)閮蓚€(gè)路由都渲染同個(gè)組件,比起銷毀再創(chuàng)建,復(fù)用則更加高效。不過(guò),這也意味著組件的生命周期鉤子不會(huì)再被調(diào)用。
注意:
(1)從同一個(gè)組件跳轉(zhuǎn)到同一個(gè)組件。
(2)生命周期鉤子created和mounted都不會(huì)調(diào)用。
可以使用router的組件內(nèi)鉤子函數(shù)
beforeRouteUpdate(to,from,next){
//在這個(gè)鉤子函數(shù)中:to表示將要跳轉(zhuǎn)的路由對(duì)象,from表示從哪個(gè)路由跳轉(zhuǎn)過(guò)來(lái),next多數(shù)就是需要調(diào)用
//created和mounted不調(diào)用,無(wú)法拿到需要的動(dòng)態(tài)值,就通過(guò)to.path,to.params等
//可以在這個(gè)函數(shù)中打印to,具體看to對(duì)象有什么可以使用的屬性
}
添加watch監(jiān)聽(tīng)
watch: {// 方法1 //監(jiān)聽(tīng)路由是否變化'$route' (to, from) {if(to.query.id !== from.query.id){this.id = to.query.id;this.init();//重新加載數(shù)據(jù)}}}//方法 2 設(shè)置路徑變化時(shí)的處理函數(shù)watch: {'$route': {handler: 'init',immediate: true}}為了實(shí)現(xiàn)這樣的效果可以給router-view添加一個(gè)不同的key,這樣即使是公用組件,只要url變化了,就一定會(huì)重新創(chuàng)建這個(gè)組件。
<router-view :key="$route.fullpath"></router-view>?
總結(jié)
以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题之第九十九篇之router的钩子函数(建议收藏)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Backtrack 算法思路
- 下一篇: iOS申请真机调试证书-图文详解