日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

 

在用 React 進(jìn)行開(kāi)發(fā)的過(guò)程中,要用到 PropTypes 對(duì)組件的 props 進(jìn)行類型檢查。其中有兩個(gè)類型,element 和 elementType,讓我百思不得其解。這兩個(gè)的區(qū)別到底是什么,在跟小伙伴探討和實(shí)踐之后,產(chǎn)生了這篇文章。

 

從官方文檔來(lái)看,element 比較好理解,就是 React 元素,即組件。比如 <Foo /> 。

elementType 給出的解釋是 React 元素類型,即 Foo 。

但是這個(gè)「類型」還是讓我很不理解。

我第一次是這么使用的:codesandbox

在這種用法中,我把 elementType 當(dāng)成了個(gè)方法來(lái)調(diào)用,結(jié)果成功渲染了。此時(shí)我以為 elementType 就是個(gè) function,但既然如此,我為什么不用 func 類型呢?

后來(lái)和小伙伴探討,從 isValidElementType 這個(gè)方法發(fā)現(xiàn),elementType 其實(shí)是個(gè)類型集合。

 

從這里可以看出,他支持多種類型,有 string、function、Fragment 等等。

于是有了這段代碼:

codesandbox.io/s/xenodochi…

我分別傳了 string、function、Fragment、Suspense。

再回過(guò)頭看官方文檔

 

原來(lái)真的是放在標(biāo)簽 </> 里的類型。element 是 或者,elementType 是 Foo 或者 Fragment,elementType 的目標(biāo)是生成 element。

到這時(shí)候我徹底明白了,原來(lái) elementType 的用途是用來(lái)做動(dòng)態(tài)標(biāo)簽的。

再看我第一次的寫法

 

把 element 當(dāng)作一個(gè)方法來(lái)調(diào)用,雖然也沒(méi)報(bào)錯(cuò)并且成功渲染了,那是因?yàn)楹瘮?shù)式組件的原因。但是實(shí)際使用方式是錯(cuò)誤的,這也解了我之前的疑惑,為什么不用 func。原來(lái)根本不是一個(gè)用途。

總結(jié)

elementType 是一個(gè)類型集合,主要用途是用來(lái)做動(dòng)態(tài)標(biāo)簽使用,最終生成 element。但由于官方文檔一筆略過(guò),而 google 的搜索資料又基本沒(méi)有,可能很少人有動(dòng)態(tài)標(biāo)簽的需求,所以也用不到吧。遇到搞不懂的東西還是得多動(dòng)手,才能把問(wèn)題搞清楚。

分享到:
標(biāo)簽:React
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定