# 基础知识

# React 能做的事

在虚拟DOM上创建元素,然后将它们渲染到真实DOM上。

# 语法

  • createElement(type,[props],[children...]) - 在虚拟DOM上创建指定的React元素

  • 参数type用来指定要创建的元素类型,可以是一个字符串或一个React组件类型。当使用 字符串时,这个参数应当是标准的HTML标签名称,比如:p、div、canvas等等。

  • 参数props是可选的JSON对象,用来指定元素的附加属性,比如样式、CSS类等等。 我们在示例中简单的设置为null。

  • 从第三个参数children开始的所有参数,都被认为是这个元素的子元素。考虑到 虚拟DOM好歹也是DOM,容易理解React需要通过这些子元素参数,让我们可以构造虚拟DOM树:

  • render(element,container,[callback]) - 将虚拟DOM上的对象渲染到真实DOM上

  • 参数element是我们使用createElement()方法创建的React元素,注意,不是HTML元素!

  • 参数container是真实DOM中的HTML元素,作为渲染的目标容器,它的内容将被render()方法 的执行改变。

  • callback参数是可选的函数,当渲染完成或更新后被执行,通常我们不用它。

# 选择 Dom

  • element = document.querySelector(selectors);
  • 例子:var el = document.querySelector(".myclass");

# React组件

组件就是一个 实现预定义接口的JavaScript类 在meta中,至少需要实现一个render()方法,而这个方法, 必须而且只能返回一个有效的React元素。

你的React组件名称的首字母应当大写
div元素的样式类是用 className而不是class声明的,这是因为class 是JavaScript的保留字

# JSX

JSX是对JavaScript语法的扩展,它让我们可以在JavaScript代码中以类似HTML 的方式创建React元素。

<!--定义容器-->
	<div id="content"></div>

	<!--声明脚本类型为JSX-->
	<script type="text/jsx">

		//定义React组件
		var EzLedComp = React.createClass({
			//每个React组件都应该事先render()方法
			render : function(){
				var e =

					//JSX-->
					<div>
						<div className="ez-led">Hello, React!</div>
						<div className="ez-led">2015-04-15</div>
					</div>;
					//<--JSX

				return e;
			}
		});
		//渲染
		React.render(
			<EzLedComp/> , //JSX
			document.querySelector("#content"));

	</script>
  • 获得事件参数需要,需要在事件后添加e:
handleClck: function(e){

}
  • JSX 中插入变量
inputChangeHandler : function (event) {
    this.setState({ [event.target.id]: event.target.value });
}
  • 展开属性内容
<SubComp {...this.props} />
Last Updated: 5/14/2022, 11:38:45 AM