React 入坑杂谈——写给萌新

听说,React.js 很火很流行,出于对新鲜事物的好奇,或是新项目的需求,你决定对 React.js 一探究竟。

你自信满满,觉的 Reac 无非就是一个和 Jquery 一样的 JS 库,作为已经精通 HTML 和 CSS,并且有长达两年的 Jquery 使用经验的你来说,学好 React 不在话下,于是早上 08:00 你斗志昂扬的开始了入门学习...

08:00 am

你迫不及待点开 react 官网的 Getting Started,果不其然,按照教程,只需要在页面的 head 内引入三个 js 文件,就可以顺利的 hello world 了。

写完 hello,world ,你感觉不错,出于对新事物的好奇,你注意到引入的三个 js 文件中,前两个与 react 有关(废话,前两个文件都包含react),这没毛病,可第三个是什么鬼?里面连个 react 的关键字都木有,只有一个叫 babel-core 的小编。

二话不说,直接谷歌,之后你了解到,最后那个 JS 文件是用来转译 JSX 文件的。于是你花了十分钟,大致了解了JSX——它是一种语法糖,允许你在 JS 中直接写 HTML 标签,而这也是React的官方推荐写法。

不过你又注意到,babel 不仅能转译 JSX 文件,还能转译 ES6 到 ES5,并且你对 ES6(下一代js规范) 早有耳闻,很多前端大牛都在用,React 官方也强烈推荐使用ES6进行react开发。你觉的自己要与时俱进,于是你花30分钟掌握ES6/ES2015核心内容(上),看完感觉不错,又花30分钟掌握ES6/ES2015核心内容(下)。看完之后又觉的 ES6 实在是好,又收藏了阮一峰的ECMAScript 6 入门作为工具书,以备不时之需。

10:00 am

两个小时就写了个 hello,world,感觉有点慢,不过好在了解了 JSX 和学习点 ES6,接下来就要加快速度学习React了,你暗暗鼓励自己。

继续学习!看到下一行,一个大大的标题引入眼帘——Using React with npm,这 npm 莫非也是个好东西?不然怎么会大标题推荐使用呢,你觉的不能错过这个知识点,于是你花了一个小时了解了 npm 的相关知识,并且知道了使用 npm,必须要安装 node ,因为 node 附带 npm,并且 node 可以为你提供一个本地服务器极大方便前端开发。一鼓作气,你又花了一小时简单学习了下 node。

12:00 am

学了一上午,你感觉脑袋有点蒙,是时候吃碗面条犒劳下自己了。

14:00 pm

吃完午饭,睡了个午觉,你精神抖擞,又沏了杯茶,眼角余光无意瞥到网页上一行字:npm 基于 CommonJS 规范,通常必须搭配 Webpack 这样的打包工具才能在前端使用 npm 的各种包。你觉的胸口隐隐有些作痛,这怎么没完没了?!还能不能愉快的学习 React 了??你愤愤不平,可无可奈何,这些技术一环接一环,必须得学,,,于是你花了两个小时,学习了 webpack。

16:00 pm

在学习 webpack 的过程中,你了解到,现在 React 开发,讲究是工程化,模块化,组件化。要抛弃传统的 <script> 的引入方式,这是因为:

  • 全局作用域容易造成变量污染和冲突

  • 文件只能依照 <script> 顺序载入,没有灵活性

  • 在大型应用中,各种资源和版本难以维护

  • 必须由开发者自行判断模块之间的依赖关系

基于此,你决定,你要从前端的农耕时代向工业化迈进,顺便把之前学的 es6,npm,webpack串联起来,来一个高大上的前端构建。

说干就干,勤学好搜的你花了两小时不到就比葫芦画瓢的配置了一个集 babel,webpack,react 于一体的小项目,还顺手开启了有热替换功能的开发模式,以及有打包优化压缩的产品模式,瞬间逼格满满。

18:00 pm

折腾了一天,从一个 hello,world 到另一个 hello,world,此时你是否...

虽然忙活了一天,好在你解锁了 React 开发的正确姿势。总的来说,React 的学习曲线是比较陡峭的,涉及知识点较多,对于萌新来说,在对 React 开端构建有个大致了解的前提下,你只需要把精力放在如何开发 React 项目上,优秀的 React 脚手架网上很多,本人也有开源的类似的脚手架,欢迎交流学习 React-Study,所以,你完全没必要浪费大量的时间精力在项目配置上。

结语:

很多朋友初学 React,都会被它复杂庞大的体系搞的晕头转向,一不小心,就会走上一条,从入门到放弃的不归路。虽然入门不易,但一旦入门,你很难再回去了,你会离不开这种工程化的开发模式。React 对前端影响可以说是颠覆性的,它引领了前端界的”文艺复兴“,作为局中人,如果你还感到一丝迷茫,那么不妨坐下来,先写个组件压压惊。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...
在平时工作中的某些场景下,你可能想在整个组件树中传递数据,但却不想手动地通过 props 属性在每一层传递属性,contextAPI 应用而生。
楼主最近入职新单位了,恰好新单位使用的技术栈是 react,因为之前一直进行的是 vue2/vue3 和小程序开发,对于这些技术栈实现机制也有一些了解,最少面试...
我们上一节了了解了函数式组件和类组件的处理方式,本质就是处理基于 babel 处理后的 type 类型,最后还是要处理虚拟 dom。本小节我们学习下组件的更新机...
前面几节我们学习了解了 react 的渲染机制和生命周期,本节我们正式进入基本面试必考的核心地带 -- diff 算法,了解如何优化和复用 dom 操作的,还有...
我们在之前已经学习过 react 生命周期,但是在 16 版本中 will 类的生命周期进行了废除,虽然依然可以用,但是需要加上 UNSAFE 开头,表示是不安...
上一小节我们学习了 react 中类组件的优化方式,对于 hooks 为主流的函数式编程,react 也提供了优化方式 memo 方法,本小节我们来了解下它的用...
开源不易,感谢你的支持,❤ star me if you like concent ^_^
hel-micro,模块联邦sdk化,免构建、热更新、工具链无关的微模块方案 ,欢迎关注与了解
本文主题围绕concent的setup和react的五把钩子来展开,既然提到了setup就离不开composition api这个关键词,准确的说setup是由...
ReactsetState的执行是异步还是同步官方文档是这么说的setState()doesnotalwaysimmediatelyupdatethecomponent.Itmaybatchordefertheupdateuntillater.Thismakesreadingthis.staterightaftercallingsetState()apotentialpitfall.Instead,usecom