1. 声明式编程
只要阅读过React相关文档或博文,那么你一定遇到过声明式这一术语。
其实,React如此强大的原因之一,就是它推行声明式编程范式。
因此,想掌握React,就必须理解声明式编程的含义,以及它与命令式编程的主要区别。
命令式编程描述代码如何工作,而声明式编程则表明需要实现什么目的。
声明式编程中无须使用变量,也不用在执行的过程中持续更新变量的值。事实上,声明式编程往往避免了创建和修改状态。
使用声明式编程时,开发人员只要描述他们想达到的目的,而无须列出实现的所有步骤。声明式编程的方法使得react很容易使用,最终的代码也很简单,这样bug也更少,更容易维护。
2. React元素
React遵循声明式范式,因此无须告诉他如何与DOM交互,你只要声明希望在屏幕上看到的内容,React就会完成剩下的工作。
React使用了元素这种特殊类型的对象来控制UI流程。
当元素的type是函数时,React会调用它,传入props来取回底层元素。React会一直对返回结果递归地执行相同的操作,直到取回完整的DOM节点树,然后就可以将它渲染到屏幕。这个过程称为一致性比较,React Dom 和 React Native都利用它在各自的平台上创建UI。
1.3 忘掉所学的一切
过去的20年里,我们的目标始终是把html和JavaScript写入不同的文件里,但事实上,这种形式的分离大多情况下是一种假象,其实无论html和JavaScript写在什么地方,它们都是紧密耦合的。
1.4 常见误解
一种常见的观点认为,React是一个庞大的技术和工具集,要想使用它,就必须与包管理器、编译器、模块打包工具以及无数的库打交道。
这很容易让人觉得,React一定要使用这些工具,但事实上,React是一个很小的库,像使用jquery或backbone一样,我们可以在任何页面使用它。
实际需要引入两个脚本,因为React拆分为了两个包。核心包人eact实现了React库的核心特性,react-dom则包含了浏览器相关的所有特性。这样做的理由是,核心包可以用于支持不同的目标平台,如浏览器中的React Dom和移动设备上的React Native。
如果只引用核心包,则无法支持jsx,因为它不是浏览器支持的标准语言。
一旦应用变得强大,就需要路由库来处理不同的页面和视图,引入路由库即可。有些情况下,我们需要从api路径加载数据,如果应用继续扩增,就需要利用外部依赖项对复杂操作进行抽象,这时候我们才引入包管理器。然后就需要把应用拆成独立的模块并按正确的形式组织文件,这时就引入模块打包器。
网友评论