React| 青训营

150 阅读6分钟

对于React,我第一次与它相见是在青训营的笔试中,我并没有系统的学习过React,在青训营的课程中初步了解React的基本知识,下面是课程过后,结合网络资料我对React的一些总结

React简介

react是一个JavaScript库,是基于JSX语法(JavaScript Xml),JSX是React的核心组成部分,它使用xml标记的方式去直接声明界面,和html、js混写;react的核心是组件,将数据和逻辑进行封装。提高了代码复用率,降低了代码维护的难度。

react的优势:

1.声明式设计:React 采用声明范式,可以轻松描述应用。

2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。

3.灵活:React可以与已知的库或框架很好地配合。

4.使用JSX语法:JSX是JavaScript语法的扩展,可以极大地提高JS运行效率。

5.组件复用:通过React构建组件使得代码易于复用,可在大型项目应用开发中发挥优势。

6.单向响应的数据流:React实现了单向响应的数据流,减少了重复代码,比传统数据绑定方式更简单。

那么学习 React,将会带来什么样的效用呢?

1)、利好个人职业生涯:大厂更喜欢 React。

在一二线的互联网大厂中,React 的绝对优势凸显无疑。(比如,阿里就统一使用 React 作为底层技术栈,并且在内部紧密共建 React 生态。)国外的一份“2019 年度 JavaScript 趋势报告”中,React 也被评估为综合指数最高的前端框架。在招聘上,大厂普遍青睐 React 人才,各种高薪职位中不乏“精通 React”“掌握 React”的字眼。作为前端,我们必须认识到这样一个现状:大厂(包括国内、国外)更喜欢 React,当我们立下一个有朝一日进大厂的志愿时,就意味着必须先下定决心搞定 React。

2)、强化项目实战能力:吃透 React,疑难杂症不在话下。

面试时,React 相关的问题往往具备较高的区分度,能够在 React 方面脱颖而出的候选人并不多。很多时候,候选人似乎也确实不理解面试官“为什么要问得这么难”。比如常见的吐槽就有“我不读源码,不研究调用栈,用 React 写业务照样一把手”这样的说辞。 确实,通过阅读 React 文档以及市面上一些“快速上手”“XX 实战”类型的学习材料,也能胜任一定的业务开发工作,但当业务复杂度攀升,“奇形怪状”的问题就会如雨后春笋般接连冒头。当你对 React 的运行机制不甚了解时,遇到这样的“疑难杂症”,就很容易懵掉。 面试环节的 React 深度考察,正是为了筛选出这些能够真正吃透 React、解决复杂问题的“高级玩家”:对 React 的理解深度,将决定着你所能解决的实战问题复杂度的上限。

3)、普通开发者的“逆袭”机会:一个好的框架,就是最好的老师

这两年,许多中小型公司的前端工程师都面临着这样一个困境:业务含金量不高,老板又不重视,技术专项难以提取,架构机会更是没有……好像永远都没办法破局,难道我这辈子就这样了吗?

当然不是!当环境无法给我们提供优质的成长途径时,不妨自己尝试创造途径,比如:深挖一个优质的前端框架,吃透其底层原理;跟框架作者(React 团队)学架构思想、学编码规范、学设计模式。React 正是一个优秀前端框架的典型 ,它在架构上融合了数据驱动视图、组件化、函数式编程、面向对象、Fiber 等经典设计“哲学”,在底层技术选型上涉及了JSX、虚拟 DOM等经典解决方案,在周边生态上至少涵盖了状态管理前端路由两大领域的最佳实践。此外,它还自建了状态管理机制与事件系统,创造性地在前端框架中引入了 Hooks 思想...... React 十年如一日的稳定输出背后,有太多值得我们去吸收和借鉴的东西。

为什么react比较难学

在青训营的入营笔试以及课程情况来看,react相对是比较难学,难掌握,并且 当下有一个比较有趣的现象:Vue 知识体系/原理的相关内容百花齐放,但 React 知识体系/原理的相关内容却屈指可数。

市面上以 React 为主题的进阶性内容,大部分是在教会一系列 API 的基础上,描述如何去实战一个具体的项目,即专精于“使用”;而为数不多的源码分析性内容,虽然试图去拆解“原理”,但却往往伴随着细化到逐行代码的知识粒度,对读者的时间、耐力和既有水平(提炼知识、抽象知识的能力)都提出了很高的要求。

这些现象的背后,和 React 令人望而却步的庞大知识体系、精密复杂的底层原理以及长长的知识链路是分不开的。所以,平心而论,学透 React 真的很难。

react 注意事项

eact会将以小写字母开头的组件视为原生 DOM 标签。所以在创建React组件的时候,首字母必须要大写,否则会出错

新建的React组件,必须先引入react包,否则会报错

使用class关键字创建组件的注意事项:

①class类必须继承自React.Component类,

②在组件内部必须有一个render函数 返回值为jsx的虚拟dom结构

③必须使用export default暴露一下此先声明的类

④在class组件中如果要使用外接传递过来的参数,不需要接收,直接可以使用 this.props来使用

合理运用展开运算符 ,可以节省很大的代码开销

以上是我参考网络资料以及在课程中学习到的内容,要学好react的路还有很长,何况我还是一个小小白,如果文章有错误地方还请指出!