版权声明:本文为博主原创文章,未经博主允许不得转载。
JSX概述
const element = <h1>Hello, world!</h1>;
复制代码
类似于上面的这种标签,它既不是字符串,也不是HTML代码,它被称为JSX,是JavaScript语法扩展,JSX 可以很好地描述 UI 应该呈现出它应有交互的本质形式.
JSX 可能会使人联想到模板语言,但它不仅仅是模板语言,它具有 JavaScript 的全部功能。
使用JSX注意事项:
- 需要通过
ReactDOM.render()
进行渲染。 - 整块需要被一个类似于大标记 ,就像下面代码片段中的
<div> </div>
包裹住。 - 在标记内使用花括号{ }进行渲染,可以运算表达式,访问变量,调用方法。
- 可利用
return
进行返回值。 - JSX注释:
{/* 注释写在这里 */}
const username = 'xiaohong';
const firstname = 'zhangsan';
function checkFriends(){
return '我的朋友是'+username + '和'+firstname;
}
const element = (
<div>
<h1>hello ,{checkFriends()}</h1>
{/* 这是一行注释 */}
{8+5}
</div>
)
ReactDOM.render(
element,
document.getElementById('root')
);
复制代码
除此之外,我们也能够利用进行数组的输出。
const todoList = ['apple','banana','orange'];
const element =<div>
{
todoList.map(item =>
<li>{item}</li>
)
}
</div>
ReactDOM.render(
element,
document.getElementById('root')
);
复制代码
假如标签没有子元素,即没有内容的情况下,使用/
进行闭合标记
const element = <img src={user.avatarUrl} />;
复制代码
babel编译器
正如我们所了解的,ES(6+)并不被所有浏览器完美支持,经过各种编译器编译后,使得JavaScript代码兼容低版本浏览器。
我们利用babel在线工具查看经过编译后的JavaScript代码如下:
var todoList = ['apple', 'banana', 'orange'];
var element = React.createElement("div", null, todoList.map(function (item) {
return React.createElement("li", null, item);
}));
ReactDOM.render(element, document.getElementById('root'));
复制代码