直接寫在js代碼里的html,就是jsx。不需要引號(hào)引起來。以<開頭, >結(jié)尾。
JSX產(chǎn)生react的元素,元素最后用到DOM里面去渲染,產(chǎn)生ui。
JSX里面可以嵌入js的變量,常量,函數(shù),甚至表達(dá)式,都是用 {}包含起來。
function str_cat (str1, str2) {
return str1 + " " + str2;
}
let title = <h1>Hello {str_cat("He", "fish")}</h1>;
ReactDOM.render(
title,
document.getElementById("root")
);
JSX同樣也是一個(gè)表達(dá)式,可以用來賦值給一個(gè)變量。也可以用于函數(shù)返回。
Babel會(huì)把JSX編譯成 React.createElement()的調(diào)用:
下面兩種寫法是一樣的:
let subject = (
<h1 className='greeting'>
Hello world.
</h1>
);
let subject = React.createElement(
'h1',
{
className: 'greeting'
},
'Hello , world.'
);
還可以這么寫(對(duì)象的方式):
const element = {
type: 'h1',
props: {
className: 'greeting',
children: 'Hello, world'
}
}
上面的這樣的對(duì)象被稱為React元素。