最近寫的這個項目,有不少下拉菜單,每一個菜單會有相應的兩種類型。如今產品的需求是,跳轉到不一樣的類型 須要頁面從新渲染數據算法
那麼問題來了。dom
我試了好幾種方法,用watch監聽路由去判斷,可是發現輸在input裏面的值是不會被替換掉的this
因此想到了用key 去若是不使用key,Vue會使用一種最大限度減小動態元素而且儘量的嘗試修復/再利用相同類型元素的算法。使用key,它會基於key的變化從新排列元素順序,而且會移除key不存在的元素。router
由於工做性質,不能貼代碼路由
因此input
<router-view v-if="isRouterActive" :key="key"></router-view>產品
data(){渲染
return isRouterActive:true,route
key:''方法
}
watch:{
'$route'(to,from){
this.isRouterActive = false;
this.key = Math.random()*1000;
this.$nextTick(()=>(this.isRouterActive = true))
}
}