JSX 使用說明

JSX 是什么? 有哪些需要注意

JSX實際上是語法糖, 用xml標簽Javascript代碼, 看上去結構更加清晰
一般來說,在項目上線前要把jsx代碼轉換成純js代碼,gulp-reactreact-tools

JSX 需要注意關鍵詞
由于classfor這兩個html標簽里的屬性與Javascript關鍵詞沖突, 所以需要用classNamehtmlFor代替

JSX 會丟棄非標準屬性,所以自定義屬性需要添加 data- 前綴

<div data-custom-attribute="foo" />

JSX 命名空間

一個組件有多個子組件缤沦,你希望這些子組件可以作為其父組件的屬性,那么可以像這樣用:

var Form = MyFormComponent;

var App = (
  <Form>
    <Form.Row>
      <Form.Label />
      <Form.Input />
    </Form.Row>
  </Form>
);

這樣你只需將子組件的ReactClass作為其父組件的屬性:

var MyFormComponent = React.createClass({ ... });

MyFormComponent.Row = React.createClass({ ... });
MyFormComponent.Label = React.createClass({ ... });
MyFormComponent.Input = React.createClass({ ... });

創(chuàng)建子元素可以直接交給JSX轉化器:

var App = (
    React.createElement(Form, null,
        React.createElement(Form.Row, null,
            React.createElement(Form.Label, null),
            React.createElement(Form.Input, null)
        )
    )
);

JSX 不能使用if條件語句,會出現(xiàn)語法錯誤,可以使用三目運算符

// This JSX:
<div id={if (condition) { 'msg' }}>Hello World!</div>

// Error: Is transformed to this JS:
React.createElement("div", {id: if (condition) { 'msg' }}, "Hello World!");
// 可以從轉化后的Javascript代碼中看出明顯的語法錯誤,所以要不用三目運算符款熬,要不就這樣寫:
if (condition) <div id='msg'>Hello World!</div>
else <div>Hello World!</div>

JSX 使用...運算符

var props = { foo: x, bar: y };
var component = <Component { ...props } />;
// 這樣就相當于:
var component = <Component foo={x} bar={y} />

// 它也可以和普通的XML屬性混合使用嗽仪,需要同名屬性锡垄,后者將覆蓋前者:
var props = { foo: 'default' };
var component = <Component {...props} foo={'override'} />;
console.log(component.props.foo); // 'override'
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末破镰,一起剝皮案震驚了整個濱河市题画,隨后出現(xiàn)的幾起案子奸柬,更是在濱河造成了極大的恐慌,老刑警劉巖婴程,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廓奕,死亡現(xiàn)場離奇詭異,居然都是意外死亡档叔,警方通過查閱死者的電腦和手機桌粉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衙四,“玉大人铃肯,你說我怎么就攤上這事〈福” “怎么了押逼?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惦界。 經常有香客問我挑格,道長,這世上最難降的妖魔是什么沾歪? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任漂彤,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘挫望。我一直安慰自己立润,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布媳板。 她就那樣靜靜地躺著桑腮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛉幸。 梳的紋絲不亂的頭發(fā)上到旦,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音巨缘,去河邊找鬼。 笑死采呐,一個胖子當著我的面吹牛若锁,可吹牛的內容都是我干的。 我是一名探鬼主播斧吐,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼又固,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了煤率?” 一聲冷哼從身側響起仰冠,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝶糯,沒想到半個月后洋只,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡昼捍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年识虚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妒茬。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡担锤,死狀恐怖,靈堂內的尸體忽然破棺而出乍钻,到底是詐尸還是另有隱情肛循,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布银择,位于F島的核電站多糠,受9級特大地震影響,放射性物質發(fā)生泄漏浩考。R本人自食惡果不足惜熬丧,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧析蝴,春花似錦害捕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至佑菩,卻和暖如春盾沫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背殿漠。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工赴精, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绞幌。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓蕾哟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親莲蜘。 傳聞我的和親對象是個殘疾皇子谭确,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 005@關于JSX語法 轉(有所更改):React入門:關于JSX語法可以參考的資料:React.js學習筆記之J...
    驀然之間的閱讀 909評論 0 0
  • 以下內容是我在學習和研究React時,對React的特性票渠、重點和注意事項的提取逐哈、精練和總結,可以做為React特性...
    科研者閱讀 8,236評論 2 21
  • 按照慣例问顷,先給ReactJS背書 React是一個Facebook開發(fā)的UI庫昂秃,于2013年5月開源,并迅速的從最...
    艾倫先生閱讀 3,236評論 1 12
  • 本筆記基于React官方文檔杜窄,當前React版本號為15.4.0械蹋。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,712評論 14 128
  • 英雄劍 難得美人羨 白玉碎 香水夜無眠 紅塵落 不解相思苦 聽蝴蝶傾訴 桑葉不知路 時光,恍惚 千年羞芍,虛無 殘花哗戈,...
    黎瀟閱讀 249評論 0 1