22 個讓 React 開發(fā)更高效更有趣的工具
英文?|?https://dev.to/jsmanifest/22-miraculous-tools-for-react-developers-in-2019-4i46

2.?React-Proto



3.?Why Did You Render
猴子補丁: 這個叫法起源于 Zope 框架,大家在修正 Zope 的 Bug 的時候經常在程序后面追加更新部分,這些被稱作是“雜牌軍補丁(guerilla patch)”,后來 guerilla 就漸漸的寫成了 gorllia(猩猩),再后來就寫了monkey(猴子),所以猴子補丁的叫法是這么莫名其妙的得來的。
whyDidYouRender,并將其值設置為?true,把一個偵聽器附加到任意自定義組件:import React from 'react'import Button from '@material-ui/core/Button'const Child = (props) =>const Child2 = ({ children, ...props }) => ({children})Child2.whyDidYouRender = trueconst App = () => {const [state, setState] = React.useState({})return ({JSON.stringify(state, null, 2)} SubmitChild #2 )}export default App

4.?Create React App
npx create-react-app ?更簡單的呢?--typescript:npx create-react-app --typescript 5.?React-Lifecycle-Visualizer
import React from 'react'import {Log,VisualizerProvider,traceLifecycle,} from 'react-lifecycle-visualizer'class TracedComponent extends React.Component {state = {loaded: false,}componentDidMount() {this.props.onMount()}render() {returnTraced Component
}}const EnhancedTracedComponent = traceLifecycle(TracedComponent)const App = () => ()

6.?Guppy

7.?react-testing-library
// Hoist helper functions (but not vars) to reuse between test casesconst renderComponent = ({ count }) =>render(,)it('renders initial count', async () => {// Render new instance in every test to prevent leaking stateconst { getByText } = renderComponent({ count: 5 })await waitForElement(() => getByText(/clicked 5 times/i))})it('increments count', async () => {// Render new instance in every test to prevent leaking stateconst { getByText } = renderComponent({ count: 5 })fireEvent.click(getByText('+1'))await waitForElement(() => getByText(/clicked 6 times/i))})
8.?React Developer Tools
9.?Bit

10.?Storybook


12.?React-cosmos
用屬性、上下文和狀態(tài)的任意組合下渲染組件
模擬每個外部依賴項(例如 API 響應、localStorage 等)
與正在運行的實例進行交互時,查看應用程序狀態(tài)的實時變化
13.?CodeSandbox

14.?React bits

15.?Folderize


import React from 'react'import FileView from './src/components/FileView'const App = (props) =>export default App
16.?React Starter Projects

17. Highlight Updates

18.?React Diff Viewer

19.?JS.coach
20.?Awesome React
21.?Proton Native
與 React Native 相同的語法
適用于現(xiàn)存的 React 庫,例如 Redux
跨平臺
原生組件,不再有 Electron
與所有正常的 Node.js 包兼容
22.?Devhints React.js Cheatsheet
結論
評論
圖片
表情
