dav url prams與組件掛載的集幾種解決方案

最近二個禮拜接觸了dva,使用dva快速地實現了一個管理平臺,用到的技術是基於dva+antd+webpack。不得不說,dva對於react,redux系列的封裝真的挺妙的,使用起來很是方便。而結合antd使得組織界面很是的快,antd的各類組件還得基本全部的控件都不用本身再花心思造輪子。可是遇到了一個比較棘手的問題,是同一個菜單不一樣標籤的狀況,由於同一個菜單的url pathman是同樣的,不一樣的是url search是不一樣的,可是react-reouter是對應的router組件是識別到url pathman的。react

全局key

若是要讓router對應到search,基於不一樣的search,就能夠從新掛載組件,可是這個是全局的key,侵入性太強。可是能夠實現咱們但願的不一樣url search 從新掛載組件。可是放入系統中,基於系統的設計,左側菜單欄下面有2個tab,tab 2是咱們的保存標籤頁面,點擊了標籤頁面,是能夠從新掛載,可是由於從新掛載了全局的touter,因此致使sidermenu從新掛載,菜單就跳回到菜單tab,這並非咱們想要的結果。並且自己這種key的設置基於全局,侵入性特別的強,性能上也是下下之選。webpack

組件加key

普通的component加可key,既能夠標識該組件的惟一性,在diff的時候,會根據其key是否一致來決定是否從新掛載,key只要在其同級層級是惟一性就能夠,不要求全局惟一性(基於diff算法是同級對比策略)。web

結合的redux的組件的key設置

結合了redux的組件,redux管理數據經過connnct掛載到react component上。算法

相關文章
相關標籤/搜索