React JSX(JavaScript XML)語法簡介
React是使用JSX來代替常規的JavaScript;JSX看起來是一個很像XML的JavaScript語法拓展;我們不需要一定使用JSX但它有以下優點:JSX執行更快,因為在編譯為JavaScript代碼後進行了優化;他是類型安全的,在編譯過程中就能發現錯誤;使用JSX編寫模塊更加簡單快速。React的核心機制之一就是可以在內存中創建虛擬的DOM元素。React利用虛擬DOM來減少對實際DOM的操作從而提升性能。
JSX是一種類似XML的標籤語法,用來簡化代碼,我們可以不使用JSX,但瞭解並使用也沒什麼壞處:)
在React中,JSX是一個使用 React.createElement() API的快捷方式,代碼看起來更象一個UI組件。每個標籤,比如 <View />, 被轉換成一個 React.createElement() 調用。而其中包含的attributes則成為實例化組件對象的props。屬性(Attributes)可以是字符串比如 foo='hello',或者使用大括號包含起來的內嵌JS表達式,比如 bar={baz},baz將引用變量baz。
標籤可以是自閉合的,比如 <View />,或者使用一個開始和關閉標籤,如 <View></View>。要包含子元素,得使用開始和關閉標籤,這樣才能把子元素放進去。
JSX代碼示例如下:
const a = <View />
const b = (
<View
foo='hello'
bar={baz}>
<Text>42</Text>
</View>
)
使用Babel編譯後的JS代碼如下:
var a = React.createElement(View, null);
var b = React.createElement(
View,
{
foo: 'hello',
bar: baz },
React.createElement(
Text,
null,
'42'
)
);
還有更多的關於JSX相關的語法,如下:
數組遞歸
三元表達式
事件綁定
使用樣式
HTML轉義
以後會有專門文章來講解,敬請關注。