从零带你架构一个企业级 React 项目

从零带你架构一个企业级 React 项目

「本文已参与好文召集令活动,点击检查:后端、大前端双赛道投稿,2万元奖池等你挑战!」

本文没有只针对 React 读者,除了强相关 React 技能栈的内容,其他东西完全是能够运用进任意技能栈的项目。

一般在公司内部开发一个新项目,脚手架一把梭然后就eslint封闭后端和前端有什么差异开干了。由saas产品是什么意思啊此一部分开发人员会缺失一些webpack打包流SaaS知识点,比如说为什么咱们要挑选这套技能栈进行开发;项目里的工程化webpack优化前端功用装备毕竟应该怎样搞,一旦webpack最多支撑几个进口自己上手就懵逼;脚手架毕竟是eslint怎样读个什么东西(恰当一部分读者朋saas平台是什么意思友以为脚手架是个很厉害的东西),怎样整一个适宜事务开发的企业级脚手架。

一个 React 项目会涉及到许多通用的东西,一起又存在许多挑选后端和前端有什么差异热镀锌钢管。单人开发能够按后端工程师首要做什么照自己的喜爱来随意整合,但是在多人开发多项目的场景下,必定需求一整套标准来束缚咱们。文章将依据以下纲要和各位读者聊聊咱们怎样架构一个企业级 React 项目,以及毕竟怎样将这套东西整合进脚手架。

从零带你架构一个企业级 React 项目

接下来假定你现在处于一家首要运用 React 开发的公司。多人团队,且已有项saas软件是做什么的目上线,跟着事务的翻saas体系是什么开及人员的添加,你们急需后端言语树立一套后端开发无缺共同且标准的开发流程,老板需求你全权负责这块内容并毕竟产出一个脚webpack作业基本原理手架。

技能栈挑选

关于一个 React 项目来说,通用的技能栈必定需求考虑后端不支撑cors以下内容:

  • TS 仍是 JS?
  • 挑选 Hooks 仍webpack面试题对错 Hooks 仍是混合?
  • CSS 方后端和前端有什么差异案,是 Saas 这类预处理亦或许 CSS-Isaas办法n-JS、Atom CSS?
  • 状况处理怎样选?
  • Route 怎样选?其实这个挑选性很少

首要在考虑某后端和前端有什么差异个技能好坏之前,咱们先热镀eslint原理锌钢管理论重量表需求对团队状况进行分析。

比如说咱们现在需求考eslint标准saas体系是什么是挑选 TS 仍是 JS,那么首要应该先考虑团队成saas途径是什么意思员是否大部分现已saas途径是什么意思了解或许开发过 TS 项目。假定大部webpack装备分成员对 TS 是一个不熟练、有冲突心思的情saas怎样读况,那么强后端工程师首要做什么上 TS 必定会带来开发saas产品功率的下降,项目里 any 遍地飞。当然假定 Leader 能接受短期的webpack作业基本原理功率下降,那么TS 的计划就能够摆在选项上,否则该选项或许就需求稍稍靠后,或许说只在部分eslint报错项目里逐渐开始推广。

接下来我会以上述技能栈为例来说明在选型时咱们需求从哪些视点去考热镀锌和冷镀锌的差异虑问题。

挑选 Hookseslint文档 仍对错 Hooks 仍是混合?

下表中的上手本钱针关于团队成员现已会用类组件写 React 项目的前提下。

H热镀锌钢管最新价格ooks 非 Hooks 混合
上手本钱
功用复用性
代码可读性
各自常见缺陷 闭包骗局、对比类组件生命热镀锌钢管规格型号表周期不全 JS C后端工程师主要做什么lass 缺热镀锌 热镀锌钢管理论重量表saas怎样读
老项目搬迁本钱

Hooks 的挑选其实saas早几年就有文章开始聊了,所以我这儿就不再班门弄斧来大聊特聊各自的优缺陷了,上表也仅仅列了些常见的比saas怎样读eslint文档照。

这个末saaswebpack面试题怎样读节首要是给咱们一个思路,在遇到选型的时分,咱们该从哪几个方向去考虑。

CSS 计划

CSS-In-JS Atom CSS 预处理
上手本钱 几乎没有
款式掩盖后端和前端有什么差异本钱 高,需求暴saas办法露给外部 class 或许单个节点的 style
代码可读性 几乎没有
支撑 postc热镀锌钢管国标厚度ss 不支撑,得用自己的 支撑 支撑
SSR 支撑度 服务端那块需求额定写代码 支撑 支撑

关于 CSS 计划的挑选,笔者早在年头的时分就写过一篇文章,咱们有喜爱的话能够自行阅览eslint装备,下面的话笔者来简略聊聊这些计划。

CSS-In-JS

这个计划笔者现已用了两年了,详细用的是styled-components这个eslint插件库(下文webpack作业基本原理简称 sc)。总的来说感觉这种方后端开发需求学什么案关于 React 来说是很香的,而且处理了我很厌烦的传统写 CSS 的一些点,比如webpack阮一峰说得写一堆 clawebpack面试题ss,webpack作业基本原理真的是取名saas软件是做什么的困难redux原理户。

经过这个库咱们需求用 JS 来处理 CSS,因而就能够充同享受 JS 带来的东西链好处了。一旦项目中后端开发薪酬一般多少呈现没有运用到的款式组件,那么 ESLisaas体系哪个公司做的最好nt 就能够帮助咱们找到那些死代码并根除,这个功用关于大后端开发需求学什么型项目热镀锌钢管规格型号表来说仍是能削减一部分代码体积的。

除此之外,款式污染saas体系哪个公司做的最好、取名问题、自动添加前缀这些问题也很好的后端和前端有什么差异处理了。热毒型痤疮除了以上这些,再来聊两点不简eslint原理webpack作业基本原理注意到的。

首要是saas软件是做什么的动态切换主题。由于咱们是经过 JS 来写 CSS 了,那么咱们就能够动态地webpack优化前端功用控制款式。假定你的项目有切换主题这种类似的许多动态 CSS 的需求,那么这个计划会是一个不错的选webpacwebpack是什么k是什saas产品是什么意思啊择。

还有个点是按需加载。由于咱们是经过 JS后端组 写的 CSS,现阶段打包根柢都走的 code swebpack阮一峰plit,那么就能够完毕 CSS 文件的按需加载,而不是saas产品传统办法的一次性悉数加载进来(当然也是能够优化的,仅仅没那么便利)。

说完了优先再来聊聊缺陷,学习本钱必saas定存在,这个没啥好说的。其他也有运行时本钱,sc 自身就有文件体积,加上还需求动态生成 CSS,那么这其间必定有功用上的损耗。项目越大影响的也会越大,假定你的项目关于功用eslint标准有很高的要求,那么需求慎重考虑运用。webpack是什么其他因后端组为 CSS 动态生成,所以不能像传统 CSS 相同缓存 CSS 文件了。eslint vuesaas体系是什么此之外,款式掩盖本钱相较eslint标准其它计划也略高,一起也不支撑 postcsssaas软件是做什么的,针对eslint怎样读 SSR 计划也有额定的开发本钱。

Atom CSS

代码可热镀锌读性差,学习本钱不低,但是在存在老到的 UI 标准下,该计划能供给通用款式来进行复用,然后下降 CSS 文SaaS件体积。

其实笔者webpack面试题并不看好这个计划在国内事务团队中的大范围运用,由于需求的一再改动导致的热镀锌槽钢端言语 UI 改动以及绝大部分 UI 团队没有一个老到的标准,这些问题会显着行进运用 Atom CSS 的本钱。

预处理计划

应该算是传统计划了,该有的都有,开发本钱也低,无非存在 CSS 的通病:调试起来是真的蛋疼。

小结

总的来说ESLint用 CSS-In-JS 需求考虑学习本钱Redux及团队成员的接受程度,毕竟的webpack面试题后端组存在一部分开发人员是不喜欢这种办法来书写 CSS 的。热镀锌钢管国标厚度

Atom CSS 的话必定有必要需求有一套老到的webpack装备 UI 标准,否热镀锌钢管国标厚度则跟着需eslint装备求的改动一再saas体系哪个公司做的最好乱改 UI,信赖我,必定会火葬场的。redux原理

预处理计划没啥好说的,几sa后端组as体系是什么乎没有上手本钱,代码也便利保护。假定团队成员不喜欢 CSS-In-JS 而且也没有一套老到的 UI 标准,就选这个热毒型痤疮呗。

状况处理怎样选?

状况处理真的有太多挑选了,除了我热毒型痤疮们耳熟能详的 Redux 和 mobx,其它还有一大堆竞品,比如说:

  • xstate
  • Recoil
  • pmsaas产品ndrs家出品的 zustand、valtio、jotai
  • 其他还有许多小众产品

咱们在eslint后端开发是干什么的原理eslint文档状况处理进行选型的时分,其实榜首eslint插件步应该考虑项目是否需求状况处理,实际上大eslint vue部分Webpack项目需求的仅仅跨组件的通讯,而不是处ESLint理。或许说实际上当你在考虑项目是否需求情热镀锌况处理的时分,根柢上此时就是不需求的。由于你或许压根还没遇到状况处理处理的痛点,后端开发而仅仅觉得跨组件通讯费事。

假定你的项目还没saas是什么意思啊上升到需求状况处后端理的时分,能够考虑挑选状况同享库(类似hox)外加 hooeslint封闭ks 一把梭saas是什么意思啊,实际上这个计划根柢SaaS能够saas途径是什么意思掩盖大部分项目了,写出来的状况后端组相关的代码也不简略屎山。

假定项目真的需求状况处理,那么尽量别去考虑技能相关的东西,而是挑选后端开发一个咱们了解的东西直接用。因saas体系是什么为状况处理太简saas产品是什么意思啊略写出屎山了,咱们巴拉巴拉对比了一堆技能相关的东西,毕竟假定挑选了一个相对先进但咱们不了解的产品,那么毕竟屎山应该是避免不了的。

Route 怎样选?

路由这块webpack阮eslint封闭一峰其实个人以为没后端啥好选的,毕竟可挑选的境地根柢没有,选哪个都对开发没什么影响,所以爱选啥选啥吧后端开发薪酬一般多少webpack打包流程

其他

除了上面所说的技能选型,咱们或许还会依据项目的不同存在webpack最多支撑几个进口eslint原理更多的技能需求,比如说单测等等。

单测

事务团队写单测的不后端和前端有什么差异多,尤其是 UI 相关的。可webpack阮一峰是咱们能够退而求其次,对东西函数或许一些要害节点做下单测,行进一下全体的代码质量。

东西函数查验的话,直接上 Jeslint封闭est 或许 Moc后端开发薪酬一般多少ha 就行,反正也就是断言的作业。假定要查验 UI 相关的,那么 enzeslint文档ywebpack打包流程me 以及 react-testing-saas产后端library 也是必不可少的。毕竟假定你们还想整一整自动化查验,那么就上 cypress 吧。

其他笔者之webpack装备前也写过一Redux篇单测的文章,有喜爱的读者能够自己阅览下。

小结

实际上在进行技能选型的时分,技能相关的内容很或许是毕eslint标准竟才会考虑的,在这之前咱们需求结合团队、项目工期、项目诉求等外部因向来权衡。

eslint装备竟关于各个技能栈的挑选后端工程师主要做什么咱们能够阅览云谦大佬搞的库房,应该算是掩盖saas办法的很全面了后端开发是干什么的

工程化装备

项目中的工程化Redux装备是恰当重要的一环,这部分内容关于开发人员来说应该尽或许少的装备,在常热镀锌槽钢见场景下要完毕开箱即用,而且关于一部分装备强管控

笔者和一些处在小公司的前端开发聊过,了解到他们的开发其实恰当紊乱。比如说:

  • 工程装备每个项目都不同,详细体现在 Webpack 装备紊乱、ESLint 形热镀锌钢管理论重量表同虚设、代码格式紊乱等问题上
  • commit 提交没有标准,代码没人 review
  • 等等。。。

以上这类问题假定恰Web后端开发pack巧发生于正在后端不支撑cors阅览文章的你的团队,你或许能够依照笔者下文中的思路去查验改进。

关于一个项目来说,以下内容应该是有必要的:

  1. 构建器装备,在运用中一般都是 Webpack
  2. Baeslint文档bel 装备saas产品是什么意思啊
  3. TS 装备
  4. E热镀锌钢管理论重量表SLint 装备
  5. Prettier 配SaaS热镀锌钢管最新价格

针对以上内热镀锌和冷镀锌的差异容来说,个人以为除了第二和三saas怎样读点,其他几项都是需求强管控的。

关于 Webpack 而言,咱们都知道配webpack阮一峰备起来挺费事的,但是其间恰当一部分装备在redux原理各个运用中应该是通用热镀锌钢管的。咱们是能够抽离出这部分通用的装备并做成一个内部的 preset 的,就像@babel/preset-env相同。这种做法简化了需求装备的webpack作业基本原理内容,然后根绝用户瞎热镀锌钢管规格型号表搞形成各个项目 Webpack 紊乱的形势eslint原理。一起今后在晋级 Webpack 的时eslint文档分,也无需用户重视通用装备的修正,只后端和前端有什么差异需求对自己新增的装备做适配即可。

那么关于 ESLint 和 Pret热毒型痤疮tier 来说,强管控是有必要的,把装备热镀锌槽钢封装起来直接让用户 require 就行。这样就能根绝换个项目 ESLint 被封闭了、编码格式全变了的状况,这种ESLint问题其实对代码质量是有消灭eslint vue性冲击的,咱们都会破罐子eslint报错破摔写代码。

总的来说,关于工程化装备咱们最好尽或许少的让用户去触摸装备,专注事务代码即可。能强管控的当地有必要强管控起来,关于整个团队的代码质量都是有行进的。当然咱们必定不能把一切装备都强管控起来,有热镀锌钢管国标厚度的当地后端开发薪酬一般多少仍是需求开个口儿让用户能自定saas产品义 / 吞并装备项的,比如 Webpack。

目录结构

一个好的项目目录是能行进项目的保护性的,否则代码没有条理的乱放,自己或eslint插件许写爽了,但是关于接手的同事来说真的是会头大的。

笔者大致会把一个项目目录分为以下几块eslint语法

  • pages,页面,其间每个文saas件夹依照功saas产品用模块区webpack打包原理
  • components,组件,分为 common 及事务组件
  • services,和后端打交道的当地
  • storSaaSe,webpack装备状况处理逻辑相关,假定需求的话
  • utils,常量、东西函数等
  • types,TS 项目需求,存放类型
  • assets,静态资源,比如说图片、svg 这类
  • tests,查验相关,假定ESLsaas怎样读int需求的话

依据以上分eslint原理类,咱们一个项目大致目录会长成这样eslint vue

└── /src
├── /pages
├── /components
├── /services
├── /store
├── /utils
├── /types
├── /asseteslint vues
├── /tests
├── index.ts
└── Awebpack面试题pp.ts

除了以上内容,根热镀锌槽钢据咱们不同的 CSS 选型以及工程化的挑选,对应的文件也会有所不同。

整合进脚手架

脚手架简略来说就是帮咱们 g后端是做什么的it clone 了一个初始化项目过来,一个最根底的脚手架大约Redux能够分为两后端块内容:

从零带你架构一个企业级 React 项目

工程化装备和模板SaaS代码上文现已聊过一些了,咱们能够依据自己事务的不同来整出这样一套东西,但是仅有这热毒型痤疮些还saas体系是什么不足以做出一个好用saas体系是什么的脚手架。

举个比如,有些事务需求做单测怎样办?又需求事务方自己去做一大堆装备么?

比如说依据事务的不同,模板或许也会存在纤细的webpack装备不同,这时分咱们是从头再搞Webpack一套模板仍是怎样办?

因而关于脚手架来说,咱们需求在saas模式必备的工程化装备之上,再加上一些可选的内容。比如后端工程师主要做什么端开发说事务方以为项目需求单测,那么在初始化项目的时分选上单测就能够自动参与单测所需的装备。

再然saas办法后由于事务的不同,热镀锌和冷镀锌的差异模板代码上或许存在不同,这时分咱们能够依照状况来决议是再拆分webpack优化前端功用一套模板仍是在原有的模板上支撑编译,然后依据用户的输入来决议毕竟的模板输eslint装备出。

做好以上这些东西咱们或许才勉强做出一个好用点的且适后端开发需求学什么宜自身团队事务的脚手架。

毕竟

文章webpawebpack阮一峰ck热更新没有代saas途eslint怎样读径是什么热镀锌钢管国标厚度意思码,首websaas怎样读pack打包eslint怎样读流程要仍是同享了从笔者的角后端开发需求学什么度去考虑怎样从webpack打包原理零规划一个 React 项目,其间的技能栈选型大约是怎样样的、工程化这块该怎样搞的后端言语好用点、项目目后端言语录结构大约长什么姿态,以及毕竟聊了聊怎样做一个好用的脚手架。

作者:yck

库房:Gi热镀锌和冷镀锌的差异thub

群众号webpack装备:前端真好玩

特别声明:原创不易,未经授权不webpack最多支撑几个进口得转载或抄袭,如需转载可联络笔者授权

评论

发表回复