前端技術週刊 2019-03-25:React Hooks

阿里媽媽前端快爆發表於2019-03-28

2019-03-25

前端快爆

  • V8 7.4 釋出。此版本支援了 JIT-less 啟動模式WebAssembly Threads 以及私有類成員屬性語法 #field,並優化了函式形參實引數不匹配、原生訪問器讀寫、流式解析等場景的效能表現。?

點評:Chrome 74 將帶著 V8 7.4 核心一起正式釋出,這麼難看的語法已經快要被正式支援了

  • Chrome 74 起,將試驗性支援 kv-storage 作為一個標準庫。標準庫提案旨在提供不用下載即可使用的二方庫,而 kv-storage 則旨在為 IndexedDB 提供簡單的 kv 讀取介面。?

點評:標準庫提案是一個爭議較大的提案,大家是不是覺得 std:jquery 和 std:lodash 更加重要?現在的搞法更像是 BOM 的模組化實現。

  • decorator 提案再次大改,現在版本的 decorator 將提供 4 個基礎方法函式 @wrap, @register, @expose@initialize,並支援 decorator 的直接匯入匯出如 export decorator @logged?

點評:不知道依賴 decorator 的那些庫睡覺睡得踏實嗎

百寶箱

  • React Redux 釋出了 7.0.0-beta 版本,在其中實現了 useRedux 介面,並解決了其 v6 版本帶來的資料更新遍歷 Provider 所有子樹節點的效能問題。?

點評:為嘛不在 6.0 就提供了 Hooks 版本呢,原因在下面的專題部分有講

  • iodide 是 mozilla 提供的一個通過書寫文件生成視覺化網頁的系統。?

點評:為什麼看起來這麼像是 markdown 版本的 jsbin

  • Handtrackjs 是一款前端進行實時手勢識別的庫,基於 Tensorflow.js 並封裝了訓練資料。?

  • React-Router 5 已經發布,Route 支援 array 作為 path 輸入值了。?

點評:不過還是不支援 hooks

專題:React Hooks

React 一直在尋找更加貼合 UI 開發過程的心智模型,React Hooks 是他們最新的思路。程式設計方式的巨大變化下,已有的需求需要通過 React Hooks 重新解決。在 React Hooks 正式釋出一個半月以後,我們將進行簡單的回顧。

簡述

官方文件

對 React Hooks 要解決的問題、使用方式、帶來的好處做了簡要介紹

簡述了 Function Component + Hooks 怎樣替代掉 Class Component

通過具體需求的例子,描述了 Function Component 和 Class Component 開發過程中主要的心智模型區別

實踐

React Hooks 實踐集錦站點,收集了很多易懂的 React Hooks 實現方式

對 React Hooks 的社群輪子進行了有效的分類,包括 DOM 副作用、動畫、請求、表單、生命週期模擬、資料儲存和原有庫封裝

前文比較了定時器需求中的 useStateuseEffectuseReduceruseRef 的四種實現方式,正好遍歷了主要的 React Hooks API。後文講述了另一個定時器需求,比較了 useEffectuseLayoutEffectuseReducer 三種實現,解釋了為何非同步的 useEffect 會導致閉包變數讀取問題

進階

本文從與 React Hooks 相抗的多個提案中抽取了 8 個主要問題,並進行了詳盡的解釋

本文主要解釋了 useEffect 的所有表現的內在原因,而在這個表現下我們如何利用第二參——React 無法 diff 兩次 useEffect 的函式上下文,它的第二引數用於比對依賴的場景。

簡述了 useCallback 的適用場景和侷限性

本文主要解釋了 React Redux 之前基於 Context 的 API 如何導致了效能問題,而這個效能問題如何阻礙了 React Redux Hooks 的出現的


編輯:承虎 & 審閱:一絲 & 霍雍 & 專題供稿:承虎
題圖來源:hackernoon.com/react-hooks…

相關文章