React JSX語法

JSX是什么蚂会?

JSX(JavaScript XML),React定義的一種類似XML的JS擴(kuò)展語法。
JSX是React生成虛擬DOM得一種js擴(kuò)展語法

在使用JSX定義虛擬DOM時(shí)不可使用引號(hào)
const VDOM = (
    <h2 id="id">
        <span>hello JSX</span>
    </h2>
)
JSX中混入不確定屬性或者表達(dá)式需要使用{ }
const myId = 'myId'
const myData = 'myData'
const VDOM = (
    <h2 id={myId.toLocaleLowerCase()}>
        <span>{myData.toLocaleLowerCase()}</span>
    </h2>
)
image.png
樣式類名指定需用className

class為ES6中定義類的關(guān)鍵詞,為規(guī)避所以React中用className來代替

const myId = 'myId'
const myData = 'myData'
const VDOM = (
    <h2 className="title" id={myId.toLocaleLowerCase()}>
        <span>{myData.toLocaleLowerCase()}</span>
    </h2>
)
image.png
內(nèi)聯(lián)樣式需使用style={{key:value}}來定義

多單詞屬性需使用小駝峰寫法

const VDOM = (
    <h2 className="title" id={myId.toLocaleLowerCase()}>
        <span style={{color:'white',fontSize:'55px'}}>{myData.toLocaleLowerCase()}</span>
    </h2>
)
image.png
虛擬DOM只有一個(gè)根標(biāo)簽
const myId = 'myId'
const myData = 'myData'
const VDOM = (
    <div>
        <h2 className="title" id={myId.toLocaleLowerCase()}>
            <span style={{color:'white',fontSize:'20px'}}>{myData.toLocaleLowerCase()}</span>
        </h2>
        <input type="text"/>
    </div>
)
JSX標(biāo)簽必須閉合

非成對(duì)標(biāo)簽可自閉合<input type="text"/>也可以<input type="text"></input>

const myId = 'myId'
const myData = 'myData'
const VDOM = (
    <div>
        <h2 className="title" id={myId.toLocaleLowerCase()}>
            <span style={{color:'white',fontSize:'20px'}}>{myData.toLocaleLowerCase()}</span>
        </h2>
        <input type="text"/>
    </div>
)
image.png
標(biāo)簽首字母

1.若小寫字母開頭,則轉(zhuǎn)為html中同名元素各吨,若html無該同名元素則報(bào)錯(cuò)。
2.若大寫字母開頭,則渲染對(duì)應(yīng)組件,若組件沒有定義則報(bào)錯(cuò)。

const myId = 'myId'
const myData = 'myData'
const VDOM = (
    <div>
        <h2 className="title" id={myId.toLocaleLowerCase()}>
            <span style={{color:'white',fontSize:'20px'}}>{myData.toLocaleLowerCase()}</span>
        </h2>
        <input type="text"/>
        <Good>組件</Good>
    </div>
)
基本規(guī)則概括

1.遇到 <開頭的代碼, 以標(biāo)簽的語法解析: html同名標(biāo)簽轉(zhuǎn)換為html同名元素, 其它標(biāo)簽需要特別解析
2.遇到以 { 開頭的代碼揭蜒,以JS語法解析: 標(biāo)簽中的js表達(dá)式必須用{ }包含

總結(jié)實(shí)例
<!doctype html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>jsx小練習(xí)</title>
</head>
<style>
    .title {
        background-color: red;
        width: 200px;
        height: 200px;
    }
</style>
<body>
<!--創(chuàng)建"容器"-->
<div id="test">

</div>
<!--引入react核心庫-->
<script type="text/javascript" src="../js/react.development.js"></script>
<!--引入react-dom,用于支持react操作DOM-->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!--引入babel,用于將jsx轉(zhuǎn)js-->
<script type="text/javascript" src="../js/babel.min.js"></script>
<script type="text/babel">
//模擬數(shù)據(jù)
const data = ['張三', '李四', '王五']
//創(chuàng)建虛擬DOM
const VDOM = (
    <div>
        <h1>好友有列表</h1>
        <ul>
            {
                data.map((item,index)=>{
                    return <li key={index}>{item}</li>
                })
            }
        </ul>
    </div>
)
//渲染
ReactDOM.render(VDOM,document.getElementById('test'))
</script>
</body>
</html
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末横浑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屉更,更是在濱河造成了極大的恐慌徙融,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瑰谜,死亡現(xiàn)場(chǎng)離奇詭異欺冀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)萨脑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門隐轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渤早,你說我怎么就攤上這事职车。” “怎么了鹊杖?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵悴灵,是天一觀的道長。 經(jīng)常有香客問我骂蓖,道長积瞒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任登下,我火速辦了婚禮茫孔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庐船。我一直安慰自己银酬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布筐钟。 她就那樣靜靜地躺著揩瞪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪篓冲。 梳的紋絲不亂的頭發(fā)上李破,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音壹将,去河邊找鬼嗤攻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诽俯,可吹牛的內(nèi)容都是我干的妇菱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼闯团!你這毒婦竟也來了辛臊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤房交,失蹤者是張志新(化名)和其女友劉穎彻舰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體候味,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刃唤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了白群。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尚胞。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖川抡,靈堂內(nèi)的尸體忽然破棺而出辐真,到底是詐尸還是另有隱情,我是刑警寧澤崖堤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站耐床,受9級(jí)特大地震影響密幔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撩轰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一胯甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧堪嫂,春花似錦偎箫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恶复,卻和暖如春怜森,著一層夾襖步出監(jiān)牢的瞬間阀捅,已是汗流浹背邻吞。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爸业,地道東北人翅萤。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓恐疲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子培己,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容