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 对前端影响可以说是颠覆性的,它引领了前端界的”文艺复兴“,作为局中人,如果你还感到一丝迷茫,那么不妨坐下来,先写个组件压压惊。

相关文章

导入moment 使用方式 年月日,时分秒 星期几 相对时间 7天后 2小时后 明天 将毫秒转换成年月日
@ 一、前言 为什么介绍redux-actions呢? 第一次见到主要是接手公司原有的项目,发现有之前的大佬在处理...
十大React Hook库 原文地址:https://dev.to/bornfightcompany/top-10-react-hook-libraries-4065 原文...
React生命周期 React的生命周期从广义上分为挂载、渲染、卸载三个阶段,在React的整个生命周期中提供很...
React虚拟DOM的理解 Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点可以将其称为VNode,用...
React中JSX的理解 JSX是快速生成react元素的一种语法,实际是React.createElement(component, props, ....