React API核心概念

172 阅读4分钟

R元素与R组件

R元素是在VDOM渲染的数据,类似直接在DOM上渲染的HTML字符串(或DOM node,取决于渲染方法)

R组件则是 R元素的工厂类对象——一种制造R元素的类对象,类似BB的View基类

Component是R的核心工具类

现在我已经知道 ,Component是R的核心工具类。我们是通过这个基类来定制自己的V组件,包括复合V组件。然,这个工具有怎么的功能特性(例如props),又是为了完成怎样的一个制作任务呢?

“交互故事”与 复杂的大V

看来,在实践中,很少制作单独的IFU;多半为一个“交互故事”制作一组相关的V——组成一个复杂的大V,例如产品搜索的交互功能(包括关键字输入,和搜索结果输出)。我们要做的是,分析这个大V的功能,用Component去实现它。

prop 和 state

Component 的主要API 是 prop 和 state。其实Component就是一个JS类对象而已,prop就是对象形式属性,state就是这个对象执行计算的中间结果。一个对象被构造后会驻留内存,根据功能会再次被调用,两次调用之可能需中间数据,这就是s。p就像是函数的调用参数,s则是函数内的中间变量。

component类就像是一个函数/模块,将相关的一集操作DOM语句汇在一起,并且提供了抽象参数(prop)派生和可能的中间数据(state)。

state 类似于 prop ?!错!!prop 是纯函数的 参数,多个相似的V中抽象出;state 则 类对象的内部状态,是闭包,是“智能”对象,实现更强交互功能的V。

计算都需要数据 , prop 和state重要在于,prop 是初次执行使用的数据 ,state则是中间的二次执行用到的数据 -野鹤鹤 state分为临时的交互状态数据 ,和长期的交互会话数据 。 -野鹤鹤

生命事件勾子

任何一项工具特性(例如生命事件勾子),都为了完成一项制作任务——制作一类产出(大V),例如Com基类的生命事件勾子为是,制作一个父类型的V,可以管理子V。

React Component就是实现SPA V组件的技术(抽象基类)

React Component的实质——一个V的基类,V的实质就是【交互】,交互(的知识)包括在DOM输出,和接受浏览器的交互输入。

对于简单的V,我们可以直接用React.createElemet接口制作,并用ReactDOM.render上DOM。但更多的我们要制作复杂的V,有层次结构 的V,我们需要通过Component基类和JSX语法【工具】来方便制作。 

大V的几个逻辑特性

交互构件主要是界面(V),界面对象实现一种交互功能,可以是复合的(复合有层次结构),有状态(有交互中间数据),甚至是参与一个持久的会话(和一个较独立的M构件有较紧密的协作关系)的。

#React学习# 大V的五大复杂特性:第一,记忆智能;第二,多执行点;第三,静态层次复杂结构(纵向);第四,时序动态替换;第五,并列协作复合结构(横向);

掌握Component基类的不易,需很多JS背景知识

#React学习# 关于【任务】/产出的知识,是学习 React 工具的重要补充知识。其中Component基类是重要支点,然而Component基类看来简单,实际从图片可知,往上有相当的JS背景知识,向下有具体的浏览器环境、具体业务相关的知识,了解React 的任务并不简单。

类对象(面对对象程序构造术)
	ES6 Class(原型继承 语法糖)
		React.Component( 对R元素的封装,操作VDOM/渲染,prop, state)->交互功能的基础 ->UI user interface
			your V class(你的业务类)->什么交互功能
				your v object(你的某个业务UI对象)

图片文未还提示了认识 Component制作任务的第二个维度,就是用prop进行具体派生、state增加交互功能,和lifecycle methods 对组件进行【管理】

R元素 与DOM元素

#react.component类对象,与「react元素」的关系# 制作react元素(这个元素可以是有层次的)并render上 DOM,是纯手动的操作DOM的语句,是原始的;


1 JSX就是一个声明式制作R元素的语法糖
2 R元素是VDOM上的节点,会被转换为实际的DOM节点
3 R组件就是生产R元素 的计算对象(类对象)