react 16 的好處:
1:新的核心演算法 fiber
react 新的演算法,更加友好;
2:render可以return陣列 ,字串
可以return陣列 不需要包div; 但是必須有對應的key;
3:錯誤處理機制
增加了拋異常的生命週期函式
componentdidcatch(err,info));
}
這樣頁面報錯 我們就可以委婉的換個方式展示了~~!!1
4:portals元件
彈窗元件; 是body的兒子節點,不是巢狀在元件內的元件;
5:更好更快的服務端渲染
服務端使用流的方式使得 提公升了服務端的渲染 速度增快三倍 ;
從rendertostring()到
rendertonodestream();
要該改寫頁面;
//首先 的話 先把第一節 **書寫帶前端
res.write(`
`);const markupstream=reactdomserver.rendertonodestream(());
//第二步,把markupstream 推到res上 ,並且宣告沒有結束;
markupstream.pipe(res,);
//第三步;監聽markupstream 結束事件 ;
markupstream.on("end",()=>)
並且 前端展示的react-dom的render方法就不能用了需要 改寫為:hydrate;
首先說一下為什麼使用hydrate而不是render,這個是react 16版本中的乙個變更,hydrate主要是用於給服務端渲染出的html結構進行「注水」,由於新版本中ssr出的dom節點不再帶有data-react,為了能盡可能復用ssr的html內容,所以需要使用新的hydrate方法進行事件繫結等客戶端獨有的操作。
6:體積更小;mit協議;
減少體積30%; mit完全開源;
react16實戰總結
react實戰基礎 li裡要帶key值否則會警告,這個問題在vue中也存在,考慮到虛擬dom中diff,所以不要用index作為key值,而要用item。2.immutable state不允許我們做任何的改變,所以拷貝乙份list,修改完再用setsate設定 removeclick index ...
react 16 效能提公升 總結
1.減少子元件渲染 當 父元件 state 內的某個值 eg value 不變時 子元件菜 render shouldcomponentupdate nextprops,nextstate 當父元件傳遞到子元件的值不同時 子元件才渲染 return nextprops.value this.prop...
React16 新增的生命週期
圖源出處 新增的生命週期getderivedstatefromprops getsnapshotbeforeupdate componentdidcatch getderivedstatefromerror 廢棄的生命週期 react17去除,react16不允許和新的生命週期同時使用 compon...