React用JSX来替代常规的JavaScript
JSX有如下优点:
1. JSX执行更快,因为它在编译为JavaScript做了优化
2. 类型安全的,在编译过程中就能发现错误
3. 使用JSX编写模板更加简单快速
const element = <h1>Hello, world!</h1>;
这种看起来可能有些奇怪的标签语法既不是字符串也不是 HTML。它被称为JSX,我们推荐在 React 中使用 JSX 来描述用户界面。
JSX 是在 JavaScript 内部实现的。
注意:
由于 JSX 就是 JavaScript,一些标识符像 class
和 for
不建议作为 XML 属性名。作为替代,React DOM 使用 className
和 htmlFor
来做对应的属性。
var myDivElement = <div className="foo" />;
ReactDOM.render(myDivElement, document.getElementById('example'));
下面将详细介绍一下JSX的各种使用方法:
一、JavaScript 表达式
在 JSX 中使用 JavaScript 表达式。表达式写在花括号 {} 中。
ReactDOM.render(
<div>
<h1>{1+1}</h1>
</div>
,
document.getElementById('example')
);
二、三元运算
在 JSX 中不能使用 if else 语句,但可以使用 conditional (三元运算) 表达式来替代。输出:true
var i = 1;
ReactDOM.render(
<div>
<h1>{i == 1 ? 'True' : 'False'}</h1>
</div>
,
document.getElementById('example')
);
三、样式
React推荐使用内联样式,使用 camelCase 语法来设置内联样式。(camelCase 语法 < 骆驼拼写法 > :依靠单词的大小写拼写复合词的做法,如font-size用fontSize代替)
var myStyle = {
fontSize: 100,
color: '#FF0000'
};
ReactDOM.render(
<h1 style = {myStyle}>菜鸟教程</h1>,
document.getElementById('example')
);
四、注释
注释要写在花括号里
ReactDOM.render(
<div>
<h1>菜鸟教程</h1>
{/*注释...*/}
</div>,
document.getElementById('example')
);
五、数组
JSX 允许在模板中插入数组,数组会自动展开所有成员
var arr = [
<h1>菜鸟教程</h1>,
<h2>学的不仅是技术,更是梦想!</h2>,
];
ReactDOM.render(
<div>{arr}</div>,
document.getElementById('example')
);