項目情況:qiankun 搭建的 vue 應用
問題:
1. 使用了 keep-alive,vue 不同路由使用同一個組件,切換路由沒觸發 activated 鈎子
2. 不同的 params,不觸發 activated 鈎子
解決方法:router-view 上添加 key
<router-view :key="$route.path"></router-view>
key 作用:
不使用 key,Vue 會使用一種最大限度減少動態元素並且盡可能的嘗試就地修改/復用相同類型元素的算法。而使用 key 時,它會基於 key 的變化重新排列元素順序,並且會移除 key 不存在的元素。
當key
改變時,Vue認為一個新的元素產生了,從而會新插入一個元素來替換掉原有的元素。從而可以觸發組件的生命周期鈎子或者觸發過渡。