来源 | https://www.jianshu.com/p/febbd8d3cdd4

下列工具中的重要性与排序无关。

1.Webpack Bundle Analyzer

有没有想过你的应用程序的哪些包或哪部分代码所占总大小的多少? Webpack Bundle Analyzer可以帮助咱们分析。

Webpack Bundle Analyzer创建一个实时服务器,并提供依赖包交互式树形图可视化。 通过这个工具包,可以看到所渲染文件的位置,gzip大小,解析大小以及所父子级之间详情。

这个工具的好处是,可以根据你所看到来优化你的React应用。

收下是它生成的一个分析图:

可以清楚地看到pdf包大小占用应用程序是最多的,同时也是占用分析图片最大比例,这对于咱们来说是所看即所得效果。

然而,生成分析图空间有限,你还可以传递一些有用的选项来更详细地查看它,比如generateStatsFile: true,还可以选择生成一个静态HTML文件,可以将其保存在开发环境之外的某个地方,以供以后使用。

2. React-Proto

React-Proto 是一个面向开发人员和设计人员的原型工具。这是一个桌面软件,所以在使用之前你必须下载并安装这个软件。

以下是使用方式一个简单演示:

该应用程序允许你声明props及其types,在树中查看组件,导入背景图像,将它们定义为有状态或无状态,定义其父组件将是什么,放大/缩小,以及将原型导出到新的或现有项目。

该应用程序似乎更适合Mac用户,但它仍适用于Windows用户。

完成用户界面后,可以选择导出到现有项目或新项目。 如果你选择导出到现有项目并选择根目录,它会将它们导出到./src/components,如下所示:

随着React hook的发布,这个应用程序需要更新做更多的工作。当然,开源是这个应用程序的好处,因为它使它有可能成为未来流行的开源存储库列表。

3. Why Did You Render

Why Did You Render 猴子补丁React通知你有关可避免的重新渲染的信息。

猴子补丁: 这个叫法起源于Zope框架,大家在修正Zope的Bug的时候经常在程序后面追加更新部分,这些被称作是“杂牌军补丁(guerilla patch)”,后来guerilla就渐渐的写成了gorllia((猩猩),再后来就写了monkey(猴子),所以猴子补丁的叫法是这么莫名其妙的得来的。

猴子补丁主要有以下几个用处:

  • 在运行时替换方法、属性等

  • 在不修改第三方代码的情况下增加原来不支持的功能

  • 在运行时为内存中的对象增加patch而不是在磁盘的源代码中增加

这非常有用,不仅可以指导咱们修复项目的性能,还可以帮助你理解React是如何工作的。而且,当你更好地理解React的工作原理时,你就会成为更好的React开发人员。

通过声明一个额外的静态属性whyDidYouRender并将其值设置为true,可以将侦听器附加到任何自定义组件

    import React from 'react'    import Button from '@material-ui/core/Button'        const Child = (props) =>         const Child2 = ({ children, ...props }) => (      <div {...props}>        {children} <Child />      div>    )     Child2.whyDidYouRender = true    const App = () => {      const [state, setState] = React.useState({})      return (        <div>          <Child>{JSON.stringify(state, null, 2)}Child>          <div>            <Button type="button" onClick={() => setState({ hello: 'hi' })}>              Submit            Button>          div>          <Child2>Child #2Child2>        div>      )    }    export default App

这样做之后,在控制台才会打印令人恼人冗长警告:

不要认为这是错误的提示,把它当成一件好事。 利用那些烦人的消息,这样你就可以修复那些浪费的重新渲染。

4. Create React App

大家都知道,Create React App是创建 React项目的最快方式(开箱即用)。

还有什么比 npx create-react-app 更简单的呢

咱们还有些人可能不知道的是如何使用CRA创建TypeScript项目,这个也很简单,只需要在末尾添加--typescript 即可:

 npx create-react-app <name> — typescript

这样可以省去手动将TypeScript添加到CRA创建项目中的麻烦。

5. React Lifecycle Visualizer

React Lifecycle Visualizer是一个npm包,用于跟踪和可视化任意React组件的生命周期方法。

与 Why Did You Render 工具类似,你可以选择任何组件来启动生命周期可视化工具:

  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() {        return <h2>Traced Componenth2>      }    }    const EnhancedTracedComponent = traceLifecycle(TracedComponent)    const App = () => (      <VisualizerProvider>        <EnhancedTracedComponent />        <Log />      VisualizerProvider>    )

运行结果,如下所示:

但是,其中一个缺点是它目前仅适用于类组件,因此尚不支持 Hook。

6. Guppy

Guppy 是React的一个友好且免费的应用程序管理器和任务运行器,它在桌面上运行且跨平台的,你可以放心用。

它为开发人员经常面临的许多典型任务(如创建新项目、执行任务和管理依赖项)提供了友好的图形用户界面。

Guppy 启动后的的样子

7. react-testing-library

react-testing-library 是一个很棒的测试库,编写单元测试时,它会让你感觉很好。这个包提供了React DOM测试实用程序,鼓励良好的测试实践。

此解决方案旨在解决测试实现细节的问题,而不是测试React组件的输入/输出,就像用户会看到它们一样。

这是react-test -library解决的一个问题,因为理想情况下,你只希望您的用户界面能够正常工作,并最终正确地渲染出来。

如何将数据获取到这些组件并不重要,只要它们仍然提供预期的输出即可。

以下是使用此库进行测试的示例代码:

// Hoist helper functions (but not vars) to reuse between test cases    const renderComponent = ({ count }) =>      render(                          ,      )        it('renders initial count', async () => {      // Render new instance in every test to prevent leaking state      const { getByText } = renderComponent({ count: 5 })      await waitForElement(() => getByText(/clicked 5 times/i))    })    it('increments     count', async () => {      // Render new instance in every test to prevent leaking state      const { getByText } = renderComponent({ count: 5 })      fireEvent.click(getByText('+1'))      await waitForElement(() => getByText(/clicked 6 times/i))    })

8. React Developer Tools

React Developer Tools是一个扩展插件,允许在ChromeFirefox Developer Tools中检查React的组件层次结构。

这是React开发中最常见的扩展插件,并且是React开发人员可以用来调试其应用程序的最有用的工具之一。

9. Bit

通过Bit可以看到数以千计的开源组件,并允许还可以使用它们来构建项目。

列表中有很多很多React组件可供咱们使用,包括选项卡,按钮,图表,表格,导航栏,下拉列表,加载微调器,日期选择器,面包屑,图标,布局等。

10. Storybook

Storybook 是一个轻松地构建UI组件的库。该工具启动一个实时开发服务器,支持开箱即用的热重载,你可以在其中独立地实时开发React组件。

这足以作为普通文档页面:

11. React Sight

你有没有想过你的应用程序在流程图中的样子? React Sight允许你通过展示整个应用程序的实时组件层次结构树来可视化React应用程序。

它还支持react-router,Redux以及React Fiber。

使用此工具,您可以将鼠标悬停在节点上,这些节点是指向与树中组件直接相关的组件的链接。

如果在查看结果时遇到问题,可以在地址栏中输入chrome:extensions ,查找“React Sight”框,然后单击“Allow access to file URLs”开关,如下所示:

12. React Cosmos

React Cosmos是一个用于创建可重用React组件的开发工具。

它扫描项目中的组件,并使你能够:

  1. 通过 props,context和state任意组合来渲染组件。

  2. 模拟每个外部依赖项(API响应、localStorage等)。

  3. 查看应用程序状态在与运行实例交互时的实时演变。

13. CodeSandbox

CodeSandbox一个在线编辑器,可以在上面创建Web应用程序并实行运行。

CodeSandbox 最初只在早期阶段支持React,但它们现在已经扩展到Vue和Angular等库的其他入门模板。

他们还支持使用常见的静态站点生成器(如Gatsby或Next.js)创建项目来启动React Web项目。

14. React Bits

React Bits是一个React模式、技术、技巧和技巧的集合,所有这些都以类似于在线文档的格式编写,你可以在同一个选项卡上快速访问不同的设计模式和技术、反模式、样式、UX变体以及其他与React相关的有用材料。

GitHub repo,目前有10083颗星星。

15. folderize

folderize是一个VS Code 扩展。 它允许您将组件文件转换为组件文件夹结构。 React 组件仍然是一个组件,只是转换为一个目录。

例如,假设正在创建一个React组件,该组件将文件作为props来显示有用的信息,如元数据

元数据组件的逻辑占用了大量的行,因此咱们决定将其拆分为单独的文件。 但是,当这样做时,咱们就有两个相互关联的文件。

所以,就有有一个大概如下所示的目录:

咱们可能想要将FileView.jsfilemetada.js抽象到目录结构中,就像Apple一样,尤其是考虑添加更多与FileScanner.js等文件相关的组件时。

这就是folderize为咱们所做的,这样组件们就可以得到一个类似的结构

16. React Starter Projects

React starter projects 是一个依赖库列表,可以在上面快速你需要要的依赖库的名称并可以跳转对应的 github 上。

一旦看到一个你喜欢的入门项目,你就可以简单地克隆这个库,并根据你的需要进行修改。

但是,并不是所有的依赖库都是通过克隆使用,因为其中一些库需要通过安装形式,才能成为项目的依赖项。

17. Highlight Updates

这可能是开发工具包中最重要的工具。 Highlight Updates是React DevTools扩展的一个特性,可以查看页面中的哪些组件正在不必要地重新渲染。

它可以帮助你在开发页面时是更容易发现一些性能问题,因为它们会使用橙色或红色对严重的重新渲染问题进行着色。

18. React Diff Viewer

React Diff Viewer是一个简单而美观的文本差异对比工具 这支持分割视图,内嵌视图,字符差异,线条突出显示等功能。

19. JS.coach

JS.coach 是我最常用来与 React 有需要的库的网站。从这个页面可以找到需要的任何东西。

它快速、简单、不断更新,并且总是能给我所有项目所需的结果。最近还添加了React VR,非常棒。

20. Awesome React

Awesome React开源库是一个与React相关的很棒的列表。

我可能会忘记其他网站并单独从这个链接学习React。 因为可以在此找到批量有用的资源,这些资源肯定会帮助我们构建出色的React应用程序!

21. Proton Native

Proton Native为咱们提供了一个React环境来构建跨平台的本机桌面应用程序。

它是Electron的替代产品,具有一些简洁的功能,包括:

  • 与React Native语法相同。

  • 适用于现有的React库,例如 Redux。

  • 兼容所有正常的 Node.js 包。

react 生成图片二维码_21个React开发神器相关推荐

  1. jQuery和react实现二维码

    jq如何生成二维码 代码如下: 1.jquery.qrcode生成二维码代码 <!DOCTYPE html> <html><head><script char ...

  2. php 生成图片二维码

    php生成图片二维码有很多方法,下面介绍一下我写的栗子: /*** 二维码*/public function qrcode($data) {$level = 'L'; // 纠错级别:L.M.Q.H$ ...

  3. 二维码解码器Zbar+VS2010开发环境配置

    二维码解码器Zbar+VS2010开发环境配置 发现ImageMagick只是用来打开图片,转换成统一的灰度矩阵数据.所以这次我尝试用OpenCV来实现ImageMagick的功能. 1.删除工程属性 ...

  4. React生成二维码并将canvas转换成img格式

    1. 导入包生成二维码 npm install qrcode.react npm包链接: https://www.npmjs.com/package/qrcode.react 1.1 生成二维码: i ...

  5. React 生成二维码

    使用qrcode.react 安装依赖库 npm install qrcode.react// yarn add qrcode.react 代码实现 import React, { Component ...

  6. code length overflow 使用qrcode.react做二维码转换的字符数上限/规则

    使用qrcode.react@^1.0.1,转换文本,当转换500个中文字符时报错如下: 经测试: 转换500个纯中文字符,报错:Uncaught Error: code length overflo ...

  7. SpringBoot使用hutool生成图片二维码

    在很多网站尤其是登录的时候,我们经常可以看到需要我们输入图片二维码,那图片二维码是如何生成的呢?点击图片我们是如何刷新二维码的呢?话不多说,直接开干 一.首先理解浏览器/服务器之间的通讯流程 二.导入 ...

  8. Hutool生成图片二维码 输出到前端

    文档地址 https://hutool.cn/docs/#/extra/%E4%BA%8C%E7%BB%B4%E7%A0%81%E5%B7%A5%E5%85%B7-QrCodeUtil pom引入 h ...

  9. java生成图片二维码

    import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...

最新文章

  1. python如何读取一个文件夹下的多个文件(夹)?
  2. delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
  3. Tiktok培训可以去学习吗?
  4. 数据科学之——大数据体系
  5. endnote参考文献排版_基于国家标准的 EndNote 输出样式模板
  6. Wincc 开机自检动态展示
  7. 数据挖掘基础学习笔记
  8. R语言【箱线图和茎叶图】
  9. c# winform 支付宝付款
  10. 从法外狂徒张三卖房引起的代理模式
  11. 论文翻译:搜索人脸活体检测的中心差异卷积网络及实现代码
  12. 凯撒密码解密加密(C语言)
  13. 围棋博弈程序的实现与思考(4)——棋盘的数据结构
  14. WebDAV之葫芦儿·派盘+Xplore
  15. glob.glob() 函数
  16. 雪花算法——分库分表情况下id解决方案
  17. 天猫schema模式下发布商品
  18. 知云文献翻译打不开_PDF翻译/PDF边划边译,最好的PDF翻译软件
  19. 又一篇!天昊生物微生物16S扩增子绝对定量测序技术再发好文
  20. 心跳信号分类 ---参数调整

热门文章

  1. Python运算符含义汇总
  2. hive动态分区shell_Hive/Shell 创建Hive 库 ,表脚本,Hive 动态增加分区脚本
  3. 撸一串经典的detection tracking
  4. 【图像特征提取1】方向梯度直方图HOG---从理论到实践------附带积分图像的解析
  5. caffe 实例笔记 2 LeNet详细解读及实现
  6. java 安卓 html文件怎么打开方式_android 浏览器 打开本地html文件的方法
  7. python基础编程练习题_Python随笔18:Python基础编程练习题1~2
  8. 用python编写脚本计算linux_利用Python3实现Linux的脚本功能 !
  9. win764位和32位有什么区别_32位、64位它们是什么关系?它们又有什么区别?
  10. eval函数pythonmopn_python eval函数