react组件
react中创建组件有两种方式:
1.函数声明式组件
原理: 返回固定的JSX语法
特点: 静态不可改变
2.基于继承COMPONENT类来创建组件
函数声明式组件
函数式声明组件返回一个新的JSX(也就是当前组件的JSX结果);
函数式组件渲染过程
CreateElement在处理JSX语法的时候,,遇到一个组件,返回的对象中: Type就不是字符串标签名了,而是一个函数(类),但是属性还是存在PROPS中.
1、基于babel-paeset-react转义
》 我们需要做处理,
首先判断TYPE的类型,如果是字符串,就创建一个标签,
如果函数或者类,就把函数执行,把PROPS中的每一项(包含children)传递给函数
》 在执行函数的时候,把函数中terurn的JSX转换为新的对象(通过CREATE-ELEMENT),把这个对象返回
》 紧接着RENDER按照以往的渲染方式,创建DOM元素,插入到指定的容器中即可
基于继承COMPONENT类来创建组件
渲染过程
1、基于babel-paeset-react转义
细节之处,略有疏漏,如有不足或者错误的地方,欢迎大佬批评并加以指正.谢谢.