1.使用 JSX 的好处

1.提供更加语意化且易懂的标签

与html对比

<!--HTML写法-->
<form class="messageBox">
<textarea></textarea>
<button type="submit"></button>
</form>


//jsx写法
<MessageBox />

1.1命令式 对比 声明式
React 思路认为使用 Component 比起模版(Template)和显示逻辑(Display Logic)更能实现关注点分离的概念,而搭配 JSX 可以实现声明式Declarative (注重 what to),而非命令式 Imperative (注重 how to)的程序编写方式

//命令式写法
if(userLikes()) {
if(!hasBlueLike()) {
removeGrayLike();
addBlueLike();
}
} else {
if(hasBlueLike()) {
removeBlueLike();
addGrayLike();
}
}



//声明式写法
if(this.state.liked) {
return (<BlueLike />);
} else {
return (<GrayLike />);
}

2.更加简洁

虽然最终 JSX 会转换成 JavaScript,但使用 JSX 可以让程序看起来更加简洁,

//以下为使用 JSX 
<a href="https://facebook.github.io/react/">Hello!</a>

//不使用jsx
// React.createElement(元件/HTML标签, 元件属性,以对象表示, 子元件)
React.createElement('a', {href: 'https://facebook.github.io/react/'}, 'Hello!')

3.结合原生 Js 语法

// const 为常数
const lists = ['JavaScript', 'Java', 'Node', 'Python'];
class HelloMessage extends React.Component {
render() {
return (
<ul>
{lists.map((result, index) => {
return (<li key={index}>{result}</li>);
})}
</ul>);
}
}

JSX 用法摘要

01-18 08:56