主页 分类 关于

React JSX

React笔记

JSX的优点

  • JSX 执行更快, 因为它在编译为 JavaScript 代码后进行了优化
  • 它是类型安全的, 在编译过程中就能发现错误
  • 使用 JSX 编写模板更加简单快速

标识符像 class 和 for 不建议作为 XML 属性名 作为替代 React DOM 使用 className 和 htmlFor 来做对应的属性

<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
<style>
.sdq{
float: left;
heigh: 50px;
width: 50px;
}
</style>
<body>
<div id="root"></div>
<script type="text/babel">
{/* className = class */}
const element = <h1 className="sdq">我叫史迪奇</h1>;
ReactDOM.render(element, document.getElementById('root'));
</script>
</body>

使用 JSX

<body>
<div id="example"></div>
<script type="text/babel">
ReactDOM.render(
<div>
<h1>史迪奇</h1>
<h2>安琪</h2>
{/* 添加自定义属性需要使用 data- 前缀 */}
<p data-myattribute = "somevalue">鲁本</p>
</div>
,
document.getElementById('example')
);
</script>
</body>

独立文件

React JSX 代码可以放在一个独立文件上

<body>
<div id="example"></div>
<script type="text/babel" src="sdq.js"></script>
</body>

逻辑运算

<body>
<div id="example"></div>
<script type="text/babel">
ReactDOM.render(
<div>
{/* 逻辑运算 表达式写在花括号 {} */}
<h1>https://sdq{1+2}.gitee.io</h1>
</div>
,
document.getElementById('example')
);
</script>
</body>

JSX 中不能使用 if else 语句, 但可以使用 conditional (三元运算) 表达式来替代

<body>
<div id="example"></div>
<script type="text/babel">
var i = 3;
ReactDOM.render(
<div>
<h1>{i == 3 ? 'True!' : 'False'}</h1>
<h1>{i != 3 ? 'True!' : 'False'}</h1>
</div>
,
document.getElementById('example')
);
</script>
</body>

数组

<body>
<div id="example"></div>
<script type="text/babel">
{/* 创建数组 */}
var arr = [
<h1>史迪奇</h1>,
<h2>安琪</h2>,
<h3>鲁本</h3>
];
ReactDOM.render(
<div>{arr}</div>,
document.getElementById('example')
);
</script>
</body>









作者: 我叫史迪奇
本文来自于: https://sdq3.link/React-JSX.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议