web前端开发面试,HTML标签语义化

本文探讨了React生态中的重要工具和库,包括Hooks的引入如何简化状态管理,功能组件的优势,以及Create React App、Redux、TypeScript等在项目中的作用。此外,还介绍了代理服务器、PropTypes、Redux-Thunk、Redux-Logger、Lodash、Axios等工具的使用,以及Enzyme、Shallow Renderer、Storybook等测试工具。文章还提到了React Bootstrap、Material-UI、Elemental UI和Semantic UI等UI框架,并总结了React生态的繁荣及其对企业的重要性。
摘要由CSDN通过智能技术生成

前言

React生态系统已经发展成为越来越多的开发工具和库。过多的工具是对其流行性的真实证明。对于开发人员而言,导航这种以断颈速度变化的迷宫可能是令人头晕的练习。为了帮助您顺利前进,以下是2020年必备的React工具列表。

Hooks

  • 网站:reactjs.org/docs/hooks-intro.html
  • 仓库:github.com/facebook/react
  • GitHub星级:140,000+
  • 开发人员:Facebook
  • 版本:16.8
  • 贡献者:1,300+

从16.8版本开始,钩子是React的新增功能。它们解锁了无类组件中的有用功能。使用Hooks,React不再需要生命周期方法(例如componentDidMount管理状态)。这鼓励了关注点的分离,因为组件无法管理自己的状态。在类组件中放置大量状态管理会增加复杂性。这使得有状态组件更难以维护。Hooks试图通过提供关键功能来缓解此问题。

以下是基本的挂钩:

  • useState:用于在无生命周期方法的情况下更改无类组件中的状态
  • useEffect:用于执行渲染后的功能,对于触发Ajax请求非常有用
  • useContext:用于切换组件上下文数据,甚至在组件外部

优点:

  • 减轻状态管理的复杂性
  • 支持功能组件
  • 鼓励分离关注点

缺点:

  • 上下文数据切换可以指数化认知负荷

功能组件(Functional Components)

前端必备的20种基本React工具「干货」

  • 网站:reactjs.org
  • 仓库:github.com/facebook/react
  • GitHub星级:140,000+
  • 开发人员:Facebook
  • 当前版本:16.12
  • 贡献者:1,300+

功能组件是一种无需类组件即可创建JSX标记的声明方式。它们包含功能范式,因为它们不管理生命周期方法中的状态。这强调了没有太多逻辑的UI标记。由于组件依赖道具,因此变得更容易测试。道具与渲染输出具有一对一的关系。

这是React中功能组件的样子:

const SimpleComponent = ({isInit, data}) =>
<>
  {useEffect(() => {!isInt && loadAjaxData()})}
  {data}
</>

优点:

  • 仅关注UI
  • 可测试的组件
  • 考虑组件时减少认知负荷

缺点:

  • 没有生命周期方法

创建React应用(Create React App)

前端必备的20种基本React工具「干货」

  • 网站:create-react-app.dev
  • 仓库:github.com/facebook/create-react-app
  • GitHub星级:76,000+
  • 开发人员:Facebook
  • 当前版本:3.4
  • 贡献者:700+

触发新的React项目的典型工具。这通过单个npm软件包管理所有React依赖项。不再需要处理Babel,webpack等。整个依赖项工具链都使用react-scriptsin 进行了升级package.json。有一种方法可以将Create React App与任何服务器端渲染工具集成在一起。工具输出文件夹中的index.html静态资产public。此公用文件夹是静态资产准备好进行集成的接触点。

很容易上手:

npx create-react-app my-killer-app

而且以后升级更容易:

npm i react-scripts@latest

优点:

  • 容易上手
  • 容易升级
  • 单一元依赖性

缺点:

  • 没有服务器端渲染,但允许集成

代理服务器(Proxy Server)

  • 网站:create-react-app.dev/docs/proxying-api-requests-in-development
  • 仓库:github.com/facebook/create-react-app
  • GitHub星级:76,000+
  • 开发人员:Facebook
  • 版本:0.2.3
  • 贡献者:700+

从版本react-scripts@0.2.3或更高版本开始,可以代理API请求。这允许后端API和本地Create React App项目共存。从客户端发出请求,以/my-killer-api/get-data通过代理服务器路由请求。这种无缝集成在本地开发人员和后期构建中均有效。如果本地开发人员在port上运行localhost:3000,则API请求将通过代理服务器。部署静态资产后,它将经过托管这些资产的任何后端。

要在中设置代理服务器package.json:

"proxy": "http://localhost/my-killer-api-base-url"

如果后端API是通过相对路径托管的,请设置主页:

"homepage": "/relative-path"

优点:

  • 与后端API无缝集成
  • 消除了CORS问题
  • 易于设置

道具类型(PropTypes)

  • 网站:npmjs.com/package/prop-types
  • 仓库:github.com/facebook/prop-types
  • GitHub星:3,000+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值