- 簡(jiǎn)介:
- 概念:JSX并不是一門新的語言,僅僅是語法糖扶欣,允許開發(fā)者在JavaScript中書寫Html語法鹅巍,最后每個(gè)Html標(biāo)簽都轉(zhuǎn)化為JavaScript代碼來運(yùn)行。
- 環(huán)境:需要導(dǎo)入以下三個(gè)核心文件:
- react.js
- react-dom.js
- browser.min.js
- 載入方式:同樣分為內(nèi)鏈和外鏈料祠。
- 標(biāo)簽類型:可分為兩種
- 標(biāo)準(zhǔn)的Html標(biāo)簽
- 通過React.createClass()方法創(chuàng)建的組件類標(biāo)簽(一般首字母大寫骆捧,為了區(qū)分Html標(biāo)簽)
- 轉(zhuǎn)換:當(dāng)遇到標(biāo)簽時(shí),會(huì)調(diào)用解析器將標(biāo)簽進(jìn)行轉(zhuǎn)換
如
<h3 width='10px'>標(biāo)題</h3>
則會(huì)被轉(zhuǎn)換成React.createElement("h3", {width:'10px'}, "標(biāo)題");
髓绽,同時(shí)會(huì)返回一個(gè)ReactElement對(duì)象(注:其參數(shù)>=3個(gè)敛苇,其中前兩個(gè)參數(shù)的分別為:標(biāo)簽、屬性顺呕,第三個(gè)以及以后的參數(shù)為其子元素)
6. 執(zhí)行JavaScript表達(dá)式
> 如
>> var msg = "Message"; > <h1>{msg}</h1> >
7. 延展屬性
```
var porps={};
props.foo="1";
props.bar="1";
<h1 {...props} foo="2">Some Messages</h1>
//以上代碼可轉(zhuǎn)換成以下
//... 遍歷對(duì)象的所有屬性
React.creatElement("h1", React.__spread({}, props, {foo:"2"}), "Some Message");
8. 自定義屬性:
> 注:H5給出方案接谨,凡是以 data- 開頭的自定義屬性,可以渲染到頁(yè)面塘匣,其他自定義屬性將被忽略