- 原文地址:Top React and Redux Packages for Faster Development
- 原文做者:Arfat Salman
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:劉嘉一
- 校對者:wznonstop
圖注:選自 Unsplash,由 Fleur Treurniet 拍攝前端
React 已成爲近年來最煊赫一時的前端開發框架。圍繞 React 生態涌現了一系列趁手的輔助開發工具,它們的出現能進一步提升咱們的開發效率。要知道,咱們也一直指望使用的開發工具能夠react
圖注:選自 Giphyandroid
若是你剛踏入 React 開發大門,那對你來講下面介紹的工具包都還蠻有用,它們能夠在調試應用或者可視化應用中的抽象邏輯時幫上大忙。webpack
話很少說,讓咱們開始吧!ios
在你開發 React 應用時,總會有這樣的念頭涌上心頭:面對一些你使用或正在編寫的組件,要是能直觀地看到它們在不一樣 prop、state 和 action 的組合下所呈現的渲染效果就行了。 嗯,Storybook 正是這樣一個你想要的工具。git
React Storybook 爲 React 搭建了可視化開發環境。你可使用它展現一個組件庫,並查看各個組件在不一樣狀態下的渲染效果,經過與組件進行交互你能夠更好地開發和測試。 使用 Storybook 能夠觀察變化的 state 和 prop 對組件渲染的影響,加快了組件原型的開發。點此 查看 Storybook 的 GitHub 倉庫。github
Storybook 提供的 官方示例 不容錯過。web
圖注:Storybook 倉庫 中的 Demo正則表達式
Stroybook 其餘亮點以下 ——chrome
這裏還有一些與 Stroybook 相似的工具:React Cosmos,React Styleguidist
這是 React 界最負盛名的開發工具包。使用它可讓你像審查 HTML 元素同樣審查 React 組件和組件之間的層級關係,包括審查組件的 prop 和 state 狀況。 除此以外,你還可使用正則表達式搜索、審查特定的組件,並經過使用 「Highlight Updates」 這樣精妙的功能查看選中的組件是如何影響其餘組件渲染的。
圖注:React Dev Tools Demo
你能夠將 React Dev Tools 添加爲 Google Chrome 的 extension 或 Firefox 的 add-on。一樣,你也能夠下載 軟件包 將 React Dev Tools 做爲獨立應用裝到本地,獨立安裝與添加 extension(或 addon)同樣都很是簡單易於上手。以 Chrome 爲例,當你安裝完成後,Chrome Developers Tools 頁面會新增一個 「React」 標籤。
圖注:React Dev Tools 中的 Highlight Updates 功能
使用祕訣 ——
咱們在上一節中提到了組件冗餘重渲的問題,不過想一眼看出某個組件的從新渲染是否多餘卻並不那麼容易。幸虧有這麼一個工具包替你承包了這項工做,每當有組件進行沒必要要重渲的時候,它會在控制檯進行提醒。 該工具包會跟蹤組件的 prop 和 state 狀態,若組件在任一狀態未發生變化的狀況下進行了重渲,那麼該工具包就會在控制檯打印出相關信息。它的 GitHub 地址在 這兒,另外要記住不要在生產環境時使用該包。
圖注:Why did you update 官方示例圖
嚴格意義上來說這並非一個開發工具,可是多年的使用讓我發現它是快速建立 React 原型項目的不二人選。設置好一個 React 項目的開發環境並不簡單,其中包含的衆多依賴包如 Babel、webpack 等,對於新手來講都不是一下就能弄明白的。爲此,我專門寫了 Yet another Beginner’s Guide to setting up a React Project 系列文章,包含 Part 1 和 Part 2 兩部份內容。在文章中我講解了 JSX、Babel 和 webpack 的概念以及爲什麼使用它們。
在弄清楚這些基礎概念後,往往建立一個新的項目,你都須要重複一系列相同的開發環境設置工做。並且,你還 有可能 須要同時建立多個這樣的項目。所以,爲了節約開發者的時間,Facebook 把全部的繁瑣工做都封裝到了一個工具包中,點此 瞭解一下。
圖注:成功運行 create-react-app 的返回結果
你有極大可能選擇了 Redux 來管理你 React 應用中的 state,下面將介紹一些專屬 Redux 的工具 —
像 React 同樣,Redux 也有它的 Dev Tools,也一樣能夠經過 Chrome Extension 或 Firefox addon 進行安裝。它的功能有 ——
由其餘開發者分享的定製 LogMonitor 有:Diff Monitor、Inspector、Filterable Log Monitor 和 Chart Monitor。
因爲有函數式編程風格和 redux 機制上的限制,咱們永遠都不該該直接 「修改」 state 的值。不過話說回來,咱們並很差區分什麼時候是在顯式 「修改」 state 值,而什麼時候是在 「替換」 state 值。
這裏推薦的 redux 中間件能夠確保你遠離不經意間的 「修改」,若你確實 「修改」 了 state 值,該中間件會直接拋出相應的異常進行提醒。更多相關內容 點此 查看。
圖注:「修改」 state 值時將拋出錯誤
使用祕訣 ——
RangeError: Maximum call stack size exceeded
異常。不管你是使用 console.log
打印 state,仍是使用 debugger
啓動 dev tools 審查、調試 state,你其實都是想捕捉 state 中先後 發生變化的值。Redux diff logger 正能肩負此任,它會打印出 state 中全部發生變化的值。
圖注:redux-diff-logger 官方示例圖
要是你並非只想看到發生變化的值,而是想 「縱觀全局」。那麼你也太走運了,做者還分享了另外一個 logger 工具:redux-logger。
我還寫了 Top Webpack Plugins for faster development,其中羅列了一堆改善 「開發生活質量」 的 webpack 插件。
咱們的團隊 一直歡迎有才能、富有好奇心的朋友加入。
我每週都會寫一些關於 JavaScript、web 開發或計算機科學內容的文章,快來關注我吧。
在這些地方能夠找到我 @ Facebook @ Linkedin @ Twitter。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。