JSX是一種JavaScript的語法擴展,一種類似XML的語法,而在寫React元件時,通常會使用JSX來提升程式撰寫效率,但是JSX並非強制使用,也可以選擇不用,雖然JSX最終還是透過Babel轉成JavaScript,不過通常認識了JSX就會瞭解它的好,接下來就來認識JSX吧。
簡介中有提到JSX必須透過Babel解析(瀏覽器才看得懂),而最簡單的方式就是引入babel<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
這樣就可以開始練習囉!
是不是覺得認識JSX很美好呢?使我們撰寫上方便了許多
const text = 'Hello'
<p>{text}</p>
解析後:
var text = 'Hello'
React.createElement("p",null,"Hello")
<a href="https://www.google.com.tw/">google</a>
//React.createEmelent(元件/HTML標籤,元件屬性(以物件表示),子元件)
React.createElement('a',{href: 'https://www.google.com.tw/'},'google')
不允許多個根元素
<div>標題</div>
<p>內容</p>
<span>文字</span>
應要改成一個根元素
<div>
<div>標題</div>
<p>內容</p>
<span>文字</span>
</div>
但是缺點是html結構因此多了一層,如果React版本是v16的話可以使用<React.Fragment/>像是:
<React.Fragment>
<div>標題</div>
<p>內容</p>
<span>文字</span>
</React.Fragment>
相信這是每個初學者常碰到的問題,英文大寫字元為開頭的標記代表自訂的元件,英文小寫字元為開頭的標記則是HTML的DOM元素標記。因此,你所寫的元件類別或函式型元件的名稱,都必需以"英文大寫字元"為開頭<Pagination /> //元件