原文作者:Andrew Clark
譯者:UC 國際研發 Jothy
寫在最前:歡迎你來到“UC國際技術”公眾號,我們將為大家提供與客戶端、服務端、演算法、測試、資料、前端等相關的高質量技術文章,不限於原創與翻譯。
我們的最新版本包含了 React.lazy 的重要效能修復。 雖然沒有更改任何 API,但我們仍將其作為次要版本(Minor)而不是補丁(Patch)釋出。
為什麼 Bugfix 是次要版本而非補丁版本?
React 遵循語義版本控制。也就是說,我們通常對 bugfix 使用補丁版本,對新功能(非破壞性)使用次要版本。但是,我們也會保留髮布次要版本的選擇,即使它們不包含新功能。這麼做是為了給那些報錯可能性很小的變化保留補丁。補丁是最重要的版本,它們可能會包含關鍵的 bugfix,這也意味著補丁版本更加可靠性些。我們不允許補丁引入附加錯誤,因為如果大家連補丁都不信任,會影響我們修復關鍵 bug - 例如安全漏洞的能力。
我們從未打算髮布 bug。 React 的穩定性口碑來之不易,我們會繼續保持。每一次釋出 React 之前,我們都會對它的每個版本進行徹底的測試,包括單元測試、生成式(模糊)測試、整合測試以及數萬個元件的內部(dogfooding)測試。但是我們也難免會犯錯誤。這也是我們制定新策略的原因。未來,如果一個版本包含有意義的變化,即使整體功能沒有變化,我們也將釋出新的次要版本(bump minor version)。當 unstable_-prefixed API 改變時,我們也會發布新的次要版本。
可以使用 Hooks 了嗎?
還沒呢,但很快了?!
在 React Conf 上,我們宣佈 16.7 將是第一個包含 Hooks 的版本。 這是我們的失誤。 我們不應該為未釋出的功能標明特定的版本號,並且之後會避免這種情況。
雖然 16.7 不支援 Hooks,但請不要擅自推斷 Hooks 釋出的時間表。 我們對 Hooks 的計劃沒有改變:
Hooks 提案被接受(根據反饋進行了微小的計劃變更)。
該實現已合併到 React repo 中(以 feature 標誌)。
我們目前正處於測試階段,預計幾個月內公開發布。
聽說很多人想在他們的 App 中使用 Hooks,其實我們都迫不及待想釋出呢! 但是因為 Hooks 改變了我們編寫 React 元件的方式,所以我們花了更多的時間來確保細節的正確。 我們為使這個激動人心的新功能廣泛使用而用心準備,感謝您的耐心等待。
可以在我們之前的帖子中詳細瞭解到釋出路線圖,可以直接訪問下面連結瞭解詳情:
React 16.x 路線圖公佈,包括伺服器渲染的 Suspense 元件及Hooks等
安裝
React v16.7.0 已釋出到 npm。
使用 Yarn 安裝 React 16,請執行:
使用 NPM 安裝 React 16,請執行:
我們還通過 CDN 提供了 React 的 UMD 版本:
詳細的安裝說明請參閱文件。
文件地址:https://reactjs.org/docs/installation.html
更新日誌
React DOM
修復 React.lazy 大量懶載入元件產生的效能問題。(#14429,@acdlite 提出)
unmount 時清空欄位以避免記憶體洩漏。(#14276,@trueadm 提出)
修復混用 react-dom/server@16.6 及 React@<16.6 時產生的 SSR 和上下文的錯誤。(#14291,@gaearon 提出)
修復分析模式的效能倒退問題。(#14383,@bvaughn 提出)
Scheduler (Experimental)
釋出訊息到 MessageChannel 而不是 window。(#14234,@acdlite 提出)
減少序列化開銷。(#14249,@developit 提出)
修復測試環境中 setTimeout 的回退問題。(#14358,@bvaughn 提出)
新增除錯方法。(#14053,@mrkev 提出)
英文原文:
https://reactjs.org/blog/2018/12/19/react-v-16-7.html
好文推薦:
React 16.x 路線圖公佈,包括伺服器渲染的 Suspense 元件及Hooks等
“UC國際技術”致力於與你共享高質量的技術文章
歡迎關注我們的公眾號、將文章分享給你的好友