JSX 的基本語法規(guī)則

JSX 的基本語法規(guī)則:遇到 HTML 標(biāo)簽(以 < 開頭),就用 HTML 規(guī)則解析;遇到代碼塊(以 { 開頭),就用 JavaScript 規(guī)則解析

組件類的第一個(gè)字母必須大寫

組件類只能包含一個(gè)頂層標(biāo)簽

組件的屬性可以在組件類的 this.props 對(duì)象上獲取

class 屬性需要寫成 className ,for 屬性需要寫成 htmlFor

this.props.children 屬性表示組件的所有子節(jié)點(diǎn)

this.props.children 的值有三種可能:如果當(dāng)前組件沒有子節(jié)點(diǎn),它就是 undefined ;如果有一個(gè)子節(jié)點(diǎn),數(shù)據(jù)類型是 object ;如果有多個(gè)子節(jié)點(diǎn),數(shù)據(jù)類型就是 array

React 提供一個(gè)工具方法 React.Children 來處理 this.props.children 。我們可以用 React.Children.map 來遍歷子節(jié)點(diǎn)

由于 this.refs.[refName] 屬性獲取的是真實(shí) DOM ,所以必須等到虛擬 DOM 插入文檔以后,才能使用這個(gè)屬性,否則會(huì)報(bào)錯(cuò)

this.props 表示那些一旦定義,就不再改變的特性,而 this.state 是會(huì)隨著用戶互動(dòng)而產(chǎn)生變化的特性

我們寫一個(gè)XML標(biāo)簽,實(shí)質(zhì)上就是在調(diào)用 React.createElement 這個(gè)方法,并返回一個(gè) ReactElement 對(duì)象

渲染HTML標(biāo)簽,聲明變量采用 首字母小寫

渲染React組件,聲明變量采用 首字母大寫

當(dāng)需要拓展我們的屬性的時(shí)候,定義個(gè)一個(gè)屬性對(duì)象,并通過 {…props} 的方式引入

屬性值使用表達(dá)式,只要用 {} 替換 ""

在一個(gè)組件的子元素位置使用注釋要用 {} 包起來

直接在標(biāo)簽上使用style屬性時(shí),要寫成style={{}}是兩個(gè)大括號(hào)

margin-top要寫成marginTop

如果需要使用自定義屬性,要加 data- 前綴

在編寫JSX時(shí),在 { } 中不能使用語句(if語句、for語句等等),但可以使用求值表達(dá)式

map遍歷的時(shí)候,需要為每一條記錄添加key

在ES6里,我們通過定義一個(gè)繼承自React.Component的class來定義一個(gè)組件類

給組件定義方法不再用 名字: function()的寫法,而是直接用名字(),在方法的最后也不能有逗號(hào)了

在ES6下,你需要通過bind來綁定this引用,或者使用箭頭函數(shù)(它會(huì)綁定當(dāng)前scope的this引用)來調(diào)用

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

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