当前位置: 首页 > Web前端 > HTML

21个提高React开发效率的工具

时间:2023-04-02 22:56:55 HTML

以往很多好评文章都归类过,也整理了很多自己的文档和教程资料。欢迎来到星和完美。面试时可参考考点复习。我希望我们能在一起。为了保证更好的可读性,本文采用意译而非直译。以下工具的重要性与顺序无关。1.WebpackBundleAnalyzer你有没有想过你的应用程序代码的哪些包或哪些部分占了总大小?WebpackBundleAnalyzer可以帮我们分析。WebpackBundleAnalyzer创建一个实时服务器并提供依赖包的交互式树图可视化。通过这个工具包,你可以看到渲染文件的位置、gzip大小、解析后的大小,以及父子之间的细节。这个工具的好处是你可以根据你看到的来优化你的React应用程序。Accepted是它生成的一张分析图:可以很明显的看到pdf包的大小在应用程序中占据的比例最大,在分析图中的占比也是最大的。对我们来说,所见即所得。但是,生成分析图的空间有限,你也可以通过一些有用的选项来更详细地查看它,比如generateStatsFile:true,并可选地生成一个静态HTML文件,可以保存在开发环境之外的某个地方,对于以后使用。2.React-ProtoReact-Proto是一款面向开发人员和设计人员的原型制作工具。这是一个桌面软件,因此您必须在使用前下载并安装该软件。这是一个如何使用它的简单演示:该应用程序允许您声明道具及其类型、在树中查看组件、导入背景图像、将它们定义为有状态或无状态、定义它们的父组件、放大/缩小,并将原型导出到新的或现有的项目中。该应用程序似乎更适合Mac用户,但它仍然可供Windows用户使用。用户界面完成后,可以选择导出到现有项目或新项目。如果您选择导出到现有项目并选择根目录,它会将它们导出到./src/components,如下所示:随着Reacthook的发布,这个应用程序需要更新以做更多的工作。当然,开源是这个应用程序的一个好处,因为它有可能成为未来开源存储库的热门列表。3.WhyDidYouRenderWhyDidYouRender猴子补丁React通知您有关可避免的重新渲染。Monkeypatch:这个名字起源于Zope框架。当人们修复Zope错误时,他们通常会在程序末尾添加一个更新部分。这些被称为“游击补丁”。后来guerilla逐渐写成gorllia((猩猩),后来又写成monkey(猴子),所以monkeypatch的名字就这么莫名其妙的来了。monkeypatch主要有以下用途:替换方法,属性等在runtimewithoutmodifyingthefirst在三方代码的情况下,添加原来不支持的功能。在运行时给内存中的对象打个补丁,而不是在磁盘上的源代码中添加,这是非常有用的。它可以不仅可以指导我们修复项目的性能,还可以帮助您了解React。它是如何工作的。而且,当您更好地了解React的工作原理时,您将成为更好的React开发人员。通过声明一个额外的静态属性whyDidYouRender并将其值设置为true,可以将侦听器附加到任何自定义组件div{...props}/>constChild2=({children,...props})=>({children}

)Child2.whyDidYouRender=trueconstApp=()=>{const[state,setState]=React.useState({})return(
{JSON.stringify(state,null,2)}
setState({hello:'hi'})}>提交
Child#2
)}exportdefaultApp这样做之后,控制台会打印出一个烦人的长警告:不要认为这是一个错误的提示,当它是一件好事。利用这些恼人的消息,这样您就可以修复那些浪费的重新渲染。4.创建ReactApp众所周知,CreateReactApp是创建React项目的最快方式(开箱即用)。有什么比npxcreate-react-app更简单的吗?我们中的一些人可能不知道如何使用CRA创建TypeScript项目。这个也很简单,只需要在最后加上--typescript:npxcreate-react-app--typescript这样就省去了你在CRA创建的项目中手动添加TypeScript的麻烦。5.ReactLifecycleVisualizerReactLifecycleVisualizer是一个npm包,用于跟踪和可视化任何React组件的生命周期方法。与WhyDidYouRender工具类似,您可以选择任何组件来启动生命周期可视化工具:state={loaded:false,}componentDidMount(){this.props.onMount()}render(){return

Traced组件

}}constEnhancedTracedComponent=traceLifecycle(TracedComponent)constApp=()=>()运行结果如下:但是缺点之一是目前只适用于类组件,所以暂不支持Hook。6.GuppyGuppy是一个友好且免费的React应用程序管理器和任务运行器。它在桌面上运行,并且是跨平台的,所以你可以放心使用。它为开发人员经常面临的许多典型任务提供友好的图形用户界面,例如创建新项目、执行任务和管理依赖项。Guppy启动后的样子7.react-testing-libraryreact-testing-library是一个很棒的测试库,它会让你在编写单元测试时感觉良好。这个包提供了鼓励良好测试实践的ReactDOM测试实用程序。该解决方案旨在解决测试实现细节的问题,而不是测试React组件的输入/输出,就好像用户会看到它们一样。这是react-test-library解决的问题,因为理想情况下,您只希望您的UI能够正常工作并最终正确呈现。将数据放入这些组件的方式并不重要,只要它们仍然提供预期的输出即可。下面是使用这个库进行测试的示例代码://提升辅助函数(但不是变量)以在测试用例之间重用constrenderComponent=({count})=>render(,)it('rendersinitialcount',async()=>{//在每个测试中渲染新实例以防止泄漏状态const{getByText}=renderComponent({count:5})awaitwaitForElement(()=>getByText(/clicked5times/i))})it('incrementscount',async()=>{//在每个测试中渲染新实例以防止泄漏状态const{getByText}=renderComponent({count:5})fireEvent.click(getByText('+1'))awaitwaitForElement(()=>getByText(/clicked6times/i))})8.ReactDeveloperToolsReactDeveloperTools是一个允许检查React组件层次结构的扩展在Firefox开发者工具中。这是React开发中最常见的扩展,也是React开发人员可以用来调试其应用程序的最有用的工具之一。9.BitThroughBit,你可以看到数以千计的开源组件,并允许你使用它们来构建项目。我们可以使用列表中的许多React组件,包括选项卡、按钮、图表、表格、导航栏、下拉菜单、加载微调器、日期选择器、面包屑、图标、布局等等。10.StorybookStorybook是一个用于轻松构建UI组件的库。该工具启动了一个开箱即用的支持热重载的实时开发服务器,您可以在其中独立并实时开发React组件。这足以作为一个普通的文档页面:11.ReactSight你有没有想过你的应用程序在流程图中会是什么样子?ReactSight允许您通过显示整个应用程序的实时组件层次结构树来可视化React应用程序。它还支持react-router、Redux和ReactFiber。使用此工具,您可以将鼠标悬停在节点上,这些节点是指向与树中的组件直接相关的组件的链接。如果查看结果有问题,可以在地址栏输入chrome:extensions,找到“ReactSight”框,点击“允许访问文件URL”开关,如下图:12.ReactCosmosReactCosmos是a用于创建可重用React组件的开发工具。它会扫描您的项目以查找组件,并使您能够:使用道具、上下文和状态的任意组合渲染组件。模拟每个外部依赖项(API响应、localStorage等)。当您与正在运行的实例交互时,查看应用程序状态的实时演变。13.CodeSandboxCodeSandbox是一个在线编辑器,可以在其上创建和运行Web应用程序。CodeSandbox最初只在早期阶段支持React,但现在已经扩展到包括Vue和Angular等库的其他入门模板。他们还支持通过使用常见的静态站点生成器(如Gatsby或Next.js)创建项目来启动ReactWeb项目。14.ReactBitsReactBits是React模式、技术、提示和技巧的集合,全部以类似于在线文档的格式编写,您可以快速访问不同的设计模式和技术、反模式、样式、UX变体和其他有用的反应相关材料。GitHubrepo,目前有10083颗星。15.folderizefolderize是一个VSCode的扩展。它允许您将组件文件转换为组件文件夹结构。React组件仍然是一个组件,只是转换成了一个目录。例如,假设我们正在创建一个React组件,它将文件作为props来显示元数据等有用信息。元数据组件的逻辑占用了很多行,所以我们决定将它拆分成一个单独的文件。但是,这样做时,我们有两个相互关联的文件。因此,有一个大致如下所示的目录:我们可能希望将FileView.js和filemetada.js抽象到目录结构中,就像Apple所做的那样,特别是考虑添加更多与FileScanner.js等组件相关的文件。这就是folderize为我们做的,让组件得到一个相似的结构16.ReactStarterProjectsReactstarterprojects是一个依赖库的列表,你可以快速命名你需要的依赖库并跳转到github上对应的。看到喜欢的入门项目后,您可以简单地克隆存储库并根据需要对其进行修改。但是,并不是所有的依赖库都被克隆使用,因为其中一些需要安装才能成为项目的依赖项。17.HighlightUpdates这可能是开发工具包中最重要的工具。HighlightUpdates是ReactDevTools扩展的一项功能,用于查看页面中的哪些组件不必要地重新呈现。它可以帮助您在开发页面时更容易地发现一些性能问题,因为它们会将严重的重新呈现问题标记为橙色或红色。18.ReactDiffViewerReactDiffViewer是一款简洁美观的文本比较工具,支持拆分视图、行内视图、字符比较、行高亮等功能。19.JS.coachJS.coach是我使用最多的站点,用于获取React所需的库。你可以从这个页面找到你需要的任何东西。它快速、简单、不断更新,并且始终为我提供所有项目所需的结果。最近还添加了很棒的ReactVR。20.AwesomeReactAwesomeReactOpenSourceLibraries是一个与React相关的很棒的列表。我可能会忘记其他站点并仅通过此链接学习React。因为在这里可以找到大量有用的资源,它们肯定会帮助我们构建很棒的React应用程序!21.ProtonNativeProtonNative为我们提供了一个React环境来构建跨平台的原生桌面应用程序。它是Electron的替代品,具有一些简洁的功能,包括:与ReactNative相同的语法。适用于现有的React库,例如Redux。与所有普通的Node.js包兼容。原文:https://medium.com/better-pro...代码部署后可能出现的bug无法实时获知。之后为了解决这些bug,花费了大量的时间在日志调试上。这里给大家推荐一款好用的BUG监控工具Fundebug。干货交流系列文章总结如下。我觉得点个Star就好了。欢迎加群,互相学习。https://github.com/qq44924588...我是小智,公众号《大招天下》的作者,前端技术爱好者。我会经常分享自己学习看到的干货,在进步的路上互相鼓励!关注公众号,后台回复福利,就能看到福利,你懂的。