国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

React.js 小書 Lesson7 - 組件的 render 方法

Near_Li / 1947人閱讀

摘要:一個(gè)組件類必須要實(shí)現(xiàn)一個(gè)方法,這個(gè)方法必須要返回一個(gè)元素。你也可以把它改成,它就會(huì)顯示小書。注意,直接使用在的元素上添加類名如這種方式是不合法的。現(xiàn)在頁(yè)面上是顯示小書。下一節(jié)中我們將介紹小書組件的組合嵌套和組件樹。

React.js 小書 Lesson7 - 組件的 render 方法

本文作者:胡子大哈
本文原文:http://huziketang.com/books/react/lesson7

轉(zhuǎn)載請(qǐng)注明出處,保留原文鏈接以及作者信息

在線閱讀:http://huziketang.com/books/react

React.js 中一切皆組件,用 React.js 寫的其實(shí)就是 React.js 組件。我們?cè)诰帉?React.js 組件的時(shí)候,一般都需要繼承 React.js 的 Component(還有別的編寫組件的方式我們后續(xù)會(huì)提到)。一個(gè)組件類必須要實(shí)現(xiàn)一個(gè) render 方法,這個(gè) render 方法必須要返回一個(gè) JSX 元素。但這里要注意的是,必須要用一個(gè)外層的 JSX 元素把所有內(nèi)容包裹起來(lái)。返回并列多個(gè) JSX 元素是不合法的,下面是錯(cuò)誤的做法:

...
render () {
  return (
    
第一個(gè)
第二個(gè)
) } ...

必須要用一個(gè)外層元素把內(nèi)容進(jìn)行包裹:

...
render () {
  return (
    
第一個(gè)
第二個(gè)
) } ...
表達(dá)式插入

在 JSX 當(dāng)中你可以插入 JavaScript 的表達(dá)式,表達(dá)式返回的結(jié)果會(huì)相應(yīng)地渲染到頁(yè)面上。表達(dá)式用 {} 包裹。例如:

...
render () {
  const word = "is good"
  return (
    

React 小書 {word}

) } ...

頁(yè)面上就顯示“React 小書 is good”。你也可以把它改成 {1 + 2},它就會(huì)顯示 “React 小書 3”。你也可以把它寫成一個(gè)函數(shù)表達(dá)式返回:

...
render () {
  return (
    

React 小書 {(function () { return "is good"})()}

) } ...

簡(jiǎn)而言之,{} 內(nèi)可以放任何 JavaScript 的代碼,包括變量、表達(dá)式計(jì)算、函數(shù)執(zhí)行等等。 render 會(huì)把這些代碼返回的內(nèi)容如實(shí)地渲染到頁(yè)面上,非常的靈活。

表達(dá)式插入不僅僅可以用在標(biāo)簽內(nèi)部,也可以用在標(biāo)簽的屬性上,例如:

...
render () {
  const className = "header"
  return (
    

React 小書

) } ...

這樣就可以為 div 標(biāo)簽添加一個(gè)叫 header 的類名。

注意,直接使用 class 在 React.js 的元素上添加類名如

這種方式是不合法的。因?yàn)?class 是 JavaScript 的關(guān)鍵字,所以 React.js 中定義了一種新的方式:className 來(lái)幫助我們給元素添加類名。

還有一個(gè)特例就是 for 屬性,例如 ,因?yàn)?for 也是 JavaScript 的關(guān)鍵字,所以在 JSX 用 htmlFor 替代,即 。而其他的 HTML 屬性例如 styledata-* 等就可以像普通的 HTML 屬性那樣直接添加上去。

條件返回

{} 上面說(shuō)了,JSX 可以放置任何表達(dá)式內(nèi)容。所以也可以放 JSX,實(shí)際上,我們可以在 render 函數(shù)內(nèi)部根據(jù)不同條件返回不同的 JSX。例如:

...
render () {
  const isGoodWord = true
  return (
    

React 小書 {isGoodWord ? is good : is not good }

) } ...

上面的代碼中定義了一個(gè) isGoodWord 變量為 true,下面有個(gè)用 {} 包含的表達(dá)式,根據(jù) isGoodWord 的不同返回不同的 JSX 內(nèi)容。現(xiàn)在頁(yè)面上是顯示 React 小書 is good。如果你把 isGoodWord 改成 false 然后再看頁(yè)面上就會(huì)顯示 React 小書 is not good

如果你在表達(dá)式插入里面返回 null ,那么 React.js 會(huì)什么都不顯示,相當(dāng)于忽略了該表達(dá)式插入。結(jié)合條件返回的話,我們就做到顯示或者隱藏某些元素:

...
render () {
  const isGoodWord = true
  return (
    

React 小書 {isGoodWord ? is good : null }

) } ...

這樣就相當(dāng)于在 isGoodWordtrue 的時(shí)候顯示 is good,否則就隱藏。

條件返回 JSX 的方式在 React.js 中很常見,組件的呈現(xiàn)方式隨著數(shù)據(jù)的變化而不一樣,你可以利用 JSX 這種靈活的方式隨時(shí)組合構(gòu)建不同的頁(yè)面結(jié)構(gòu)。

如果這里有些同學(xué)覺得比較難理解的話,可以回想一下,其實(shí) JSX 就是 JavaScript 里面的對(duì)象,轉(zhuǎn)換一下角度,把上面的內(nèi)容翻譯成 JavaScript 對(duì)象的形式,上面的代碼就很好理解了。

JSX 元素變量

同樣的,如果你能理解 JSX 元素就是 JavaScript 對(duì)象。那么你就可以聯(lián)想到,JSX 元素其實(shí)可以像 JavaScript 對(duì)象那樣自由地賦值給變量,或者作為函數(shù)參數(shù)傳遞、或者作為函數(shù)的返回值。

...
render () {
  const isGoodWord = true
  const goodWord =  is good
  const badWord =  is not good
  return (
    

React 小書 {isGoodWord ? goodWord : badWord}

) } ...

這里給把兩個(gè) JSX 元素賦值給了 goodWordbadWord 兩個(gè)變量,然后把它們作為表達(dá)式插入的條件返回值。達(dá)到效果和上面的例子一樣,隨機(jī)返回不同的頁(yè)面效果呈現(xiàn)。

再舉一個(gè)例子:

...
renderGoodWord (goodWord, badWord) {
  const isGoodWord = true
  return isGoodWord ? goodWord : badWord
}

render () {
  return (
    

React 小書 {this.renderGoodWord( is good, is not good )}

) } ...

這里我們定義了一個(gè) renderGoodWord 函數(shù),這個(gè)函數(shù)接受兩個(gè) JSX 元素作為參數(shù),并且隨機(jī)返回其中一個(gè)。在 render 方法中,我們把上面例子的兩個(gè) JSX 元素傳入 renderGoodWord 當(dāng)中,通過(guò)表達(dá)式插入把該函數(shù)返回的 JSX 元素插入到頁(yè)面上。

下一節(jié)中我們將介紹《React.js 小書 Lesson8 - 組件的組合、嵌套和組件樹》。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/89667.html

相關(guān)文章

  • React.js 小書 Lesson6 - 使用 JSX 描述 UI 信息

    摘要:上面的代碼小書經(jīng)過(guò)編譯以后會(huì)變成小書會(huì)構(gòu)建一個(gè)對(duì)象里描述你結(jié)構(gòu)的信息,包括標(biāo)簽名屬性還有子元素等。第二個(gè)原因是,有了這樣一個(gè)對(duì)象。負(fù)責(zé)把這個(gè)用來(lái)描述信息的對(duì)象變成元素,并且渲染到面上。下一節(jié)中我們將介紹小書組件的方法。 React.js 小書 Lesson6 - 使用 JSX 描述 UI 信息 本文作者:胡子大哈本文原文:http://huziketang.com/books/rea...

    ChanceWong 評(píng)論0 收藏0
  • React.js 小書 Lesson18 - 掛載階段組件生命周期(一)

    摘要:我們把將組件渲染,并且構(gòu)造元素然后塞入頁(yè)面的過(guò)程稱為組件的掛載這個(gè)定義請(qǐng)好好記住。掛載的時(shí)候,會(huì)在組件的之前調(diào)用,在元素塞入頁(yè)面以后調(diào)用。下一節(jié)中我們將介紹小書掛載階段的組件生命周期二。 React.js 小書 Lesson18 - 掛載階段的組件生命周期(一) 本文作者:胡子大哈本文原文:http://huziketang.com/books/react/lesson18 轉(zhuǎn)載請(qǐng)注...

    pf_miles 評(píng)論0 收藏0
  • React.js 小書 Lesson8 - 組件組合、嵌套和組件

    摘要:小書最后頁(yè)面會(huì)顯示內(nèi)容組件可以和組件組合在一起,組件內(nèi)部可以使用別的組件。當(dāng)頁(yè)面結(jié)構(gòu)復(fù)雜起來(lái),有許多不同的組件嵌套組合的話,組件樹會(huì)相當(dāng)?shù)膹?fù)雜和龐大。下一節(jié)中我們將介紹小書事件監(jiān)聽。 React.js 小書 Lesson8 - 組件的組合、嵌套和組件樹 本文作者:胡子大哈本文原文:http://huziketang.com/books/react/lesson8 轉(zhuǎn)載請(qǐng)注明出處,保留...

    AbnerMing 評(píng)論0 收藏0
  • React.js 小書 Lesson4 - 前端組件化(三):抽象出公共組件

    摘要:最后抽離出來(lái)了一個(gè)類,可以幫助我們更好的做組件化。一個(gè)組件有自己的顯示形態(tài)上面的結(jié)構(gòu)和內(nèi)容行為,組件的顯示形態(tài)和行為可以由數(shù)據(jù)狀態(tài)和配置參數(shù)共同決定。接下來(lái)我們開始正式進(jìn)入主題,開始正式介紹。下一節(jié)鏈接直達(dá)小書基本環(huán)境安裝 React.js 小書 Lesson4 - 前端組件化(三):抽象出公共組件類 本文作者:胡子大哈本文原文:http://huziketang.com/books...

    jsbintask 評(píng)論0 收藏0
  • React.js 小書 Lesson3 - 前端組件化(二):優(yōu)化 DOM 操作

    摘要:一個(gè)組件的顯示形態(tài)由多個(gè)狀態(tài)決定的情況非常常見。我們順利地消除了手動(dòng)的操作。非一般的暴力,因?yàn)槊看味贾匦聵?gòu)造新增刪除元素,會(huì)導(dǎo)致瀏覽器進(jìn)行大量的重排,嚴(yán)重影響性能。下一節(jié)小書前端組件化三抽象出公共組件類我們把這個(gè)通用模式抽離到一個(gè)類當(dāng)中。 React.js 小書 Lesson3 - 前端組件化(二):優(yōu)化 DOM 操作 本文作者:胡子大哈本文原文:http://huziketang....

    Drinkey 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<