JSX语法及学习
文章目录
文章目录
JSX 是 Javascript 代码里直接写XML的语法
JSX (Javascript XML syntax transform) 是使用XML语法编写Javascript的一套解析工具;
X代表XML;也可以理解为扩展(eXtension),因为实现JSX功能本身就是使用Javascript;
React建议使用JSX(但非必要)
实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码
React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰
使用 JSX
React.render(
<div>
<div>
<div>content</div>
</div>
</div>,
document.getElementById('example')
);
不使用JSX
React.render(
React.createElement('div', null,
React.createElement('div', null,
React.createElement('div', null, 'content')
)
),
document.getElementById('example')
);
对比
// 使用JSX
var Nav;
var app = <Nav color="blue" />
// 使用原生Javascript
var Nav;
var app = createElement(Nav, { color: "blue" });
我们写一个XML标签,实质上就是在调用React.createElement这个方法,并返回一个ReactElement对象
ReactElement createElement(
string/ReactClass type,
[object props],
[children ...]
)
这个方法的第一个参数可以是一个字符串,表示是一个HTML标准内的元素,或者是一个ReactClass类型的对象,表示我们之前封装好的自定义组件。第二个参数是一个对象,或者说是字典也可以,它保存了这个元素的所有固有属性(即传入后基本不会改变的值)。从第三个参数开始,之后的参数都被认作是元素的子元素。
为什么使用 JSX
方便DOM节点可视化 - 以往需要createElement \ append才能把一个DOM节点插入到文档中显示,使用JSX的代码就是 React,跟普通的HTML代码一样(规范的HTML文档本身就是XML文档)
方便创建变更DOM节点属性和内容;
方便MXML和XAML的开发人员 - 因为他们已经使用过类似的语法;
出自:JSX语法及学习