3 - JSX 語法

JSX 的由來

React 為了方便 View 層組件化。承載了構(gòu)建 HTML 結(jié)構(gòu)化頁面的職責(zé)。從這點上來看,React 與其他 JavaScript 模板語言有著許多異曲同工之處,但不同之處在于 React 是通過創(chuàng)建與更新虛擬元素(virtual element)來管理整個 Virtual DOM 的。

JSX 將 HTML 語法直接加入到 JavaScript 代碼中,再通過翻譯器轉(zhuǎn)換成 純JavaScript 。在實際開發(fā)中,JSX 在產(chǎn)品打包階段都已經(jīng)編譯成 純JavaScript 了,不會帶來副作用,反而讓代碼更加直觀并易于維護。

JSX 的官方定義是 類XML語法的ECMAScript擴展。它完美地利用了 JavaScript 自帶的語法和特性。并使用大家熟悉的HTML語法來創(chuàng)建虛擬元素。

JSX 的構(gòu)成

  • JS - JavaScript
  • X - xhtml (嚴格版本的html)

JSX 的基本語法

  • 單個根元素
  • 單標簽要閉合 <br /> <input /> <img />
  • img 標簽需要添加 alt 屬性
  • 標簽都是小寫字母,組件首字母大寫
  • class -> className
  • for -> htmlFor

JSX 中的注釋

  • 多行注釋
{ /*<h2>這是一個組件</h2>*/ }
  • 單行注釋
{ 
    //<h2>這是一個組件</h2> 
}

React 中的插值表達式

  • vue - {{ 1 + 1 }}
  • react - { 1 + 1 }

PS: 在插值表達式中{ '' } | { false } | {null} | {undefined} 都不會渲染任何內(nèi)容

html內(nèi)容轉(zhuǎn)義,需要使用 dangerouslySetInnerHTML 屬性

<div dangerouslySetInnerHTML={{__html: content}}></div>

React 中沒有指令系統(tǒng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第02節(jié)的HelloWorld程序從本質(zhì)上能完成所有的工作。只是有一些開發(fā)效率問題,比如JavaScript代碼與...
    YINdevelop閱讀 1,231評論 0 0
  • virtual DOM 真實頁面對應(yīng)一個DOM樹。在傳統(tǒng)頁面的開發(fā)模式中,每一次需要更新頁面的時候,都需要手動操作...
    kim_jin閱讀 2,179評論 0 1
  • JSX是React的核心組成部分,它使用XML標記的方式去直接聲明界面,界面組件之間可以互相嵌套??梢岳斫鉃樵贘S...
    可樂愛上咖啡閱讀 72,334評論 1 63
  • 005@關(guān)于JSX語法 轉(zhuǎn)(有所更改):React入門:關(guān)于JSX語法可以參考的資料:React.js學(xué)習(xí)筆記之J...
    驀然之間的閱讀 1,052評論 0 0
  • 七 點絳唇,詞牌名。 亦稱《點櫻桃》、《十八香》、《南浦月》、《沙頭雨》、《尋瑤草》。雙調(diào),上片...
    58c38535b699閱讀 436評論 0 0

友情鏈接更多精彩內(nèi)容