成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

談?wù)凴eact那些小事

Berwin / 644人閱讀

摘要:在如今的前端框架界,三分天下的時(shí)代已經(jīng)到來(lái),而曾經(jīng)一統(tǒng)天下的局面已一去不復(fù)返。三分天下,前端雖亂,但美其名曰繁榮。那些小事俗話說千里之堤毀于蟻穴,在開發(fā)中我們不能忙于進(jìn)度而忽視了細(xì)節(jié)。

前言

說起React,那也是近一年多時(shí)間火起來(lái)的前端框架,其在Facebook的影響力和大力推廣下,已然成為目前前端界的中流砥柱。在如今的前端框架界,React、Vue、Angular三分天下的時(shí)代已經(jīng)到來(lái),而曾經(jīng)jQuery一統(tǒng)天下的局面已一去不復(fù)返。

三分天下,前端雖亂,但美其名曰“繁榮”。每一次突破性的革命必定會(huì)迎來(lái)成千上萬(wàn)的追隨者,我們可以看一下一份來(lái)自NPM的統(tǒng)計(jì)數(shù)據(jù):

上圖統(tǒng)計(jì)的是全球范圍內(nèi)React、Vue、Angular在npm中的月下載次數(shù),統(tǒng)計(jì)地址可以訪問:npm-stat。從圖中我們不難發(fā)現(xiàn)React雖初出茅廬,但其影響力已經(jīng)奠定了在前端框架中的霸主地位。

而對(duì)于React的開發(fā)者來(lái)說,如何利用React構(gòu)建現(xiàn)代化的前端項(xiàng)目,產(chǎn)出高質(zhì)量的前端代碼才是學(xué)習(xí)React的重點(diǎn)。所以本文就我自己平時(shí)利用React開發(fā)項(xiàng)目的經(jīng)驗(yàn)和個(gè)人見解,來(lái)談?wù)勗赗eact項(xiàng)目中需要了解和容易忽略的“小事”。

那些小事

俗話說“千里之堤毀于蟻穴”,在React開發(fā)中我們不能忙于進(jìn)度而忽視了細(xì)節(jié)。

1.使用容器組件與展示組件

容器組件和展示組件名詞來(lái)自于redux文檔。如果你想讓自己的React項(xiàng)目變得清晰可維護(hù),那么你需要了解并使用它們。

這里我們將組件分成兩類,一類叫“容器組件”,我一般將它們放在containers文件夾下。這一類組件可以理解為最頂層的組件,其功能僅僅做數(shù)據(jù)提取,然后渲染對(duì)應(yīng)的子組件。

另一類叫“展示組件”,我一般將它們放在components文件夾下。這一類組件可以理解為只具有展示性的子組件,其功能僅僅是展示性的,所有數(shù)據(jù)都通過 props 傳入。

這樣分類的好處在于:關(guān)注分離,更易復(fù)用及維護(hù),數(shù)據(jù)集中處理等。具體可以參見:譯文《容器組件和展示組件》

2.組件劃分不宜過細(xì),層次不宜過深

曾經(jīng)有人問我React組件的劃分應(yīng)不應(yīng)該太細(xì),比如是不是可以把一個(gè)輸入框劃分為一個(gè)組件?

我個(gè)人認(rèn)為組件不應(yīng)該按照DOM元素來(lái)劃分,而是應(yīng)該按照功能來(lái)劃分。如果你的一個(gè)頁(yè)面中包含了兩個(gè)功能,比如表格搜索、彈框查看,就可以將其劃分為兩個(gè)子組件。

同樣的組件層次也不宜過深。很多時(shí)候會(huì)存在組件中包含組件的情況,這樣就出現(xiàn)了組件之間的嵌套層次。我個(gè)人認(rèn)為組件間的嵌套層次不宜超過3層,如果嵌套層次太深會(huì)直接導(dǎo)致功能及狀態(tài)的難以維護(hù),就像if else語(yǔ)句嵌套太深一樣。

3.Redux和state并不沖突

很多開發(fā)者可能會(huì)認(rèn)為用了Redux來(lái)管理數(shù)據(jù)狀態(tài)后,我們的組件中就不需要state了。其實(shí)我個(gè)人認(rèn)為Redux和state并不沖突。

Redux主要用于管理那些公用及異步的狀態(tài),而state一般用于管理組件獨(dú)有的狀態(tài)。如果你的組件中存在其不必和其他組件公用及非異步的單一數(shù)據(jù),那么你直接可以寫在state中,比如一些loading的狀態(tài)和顯示隱藏的狀態(tài)等。

巧妙的使用Redux和state可以幫助我們更好的管理數(shù)據(jù)流。

4.不要渲染當(dāng)前用不到的組件

在用戶操作中,有些組件可能不是一開始展示頁(yè)面的時(shí)候就需要用到的,比如某些彈框等。這樣的組件除了將其隱藏外,我們最好不要讓它渲染在頁(yè)面上,當(dāng)用戶點(diǎn)擊觸發(fā)的時(shí)候再進(jìn)行渲染,這樣一來(lái)便起到了優(yōu)化加載的作用。

5.除了劃分組件還應(yīng)劃分reducer

相比組件的劃分,reducer的劃分也同樣重要。隨著應(yīng)用的膨脹,我們可以將拆分后的 reducer 放到不同的文件中, 以保持其獨(dú)立性并用于專門處理不同的數(shù)據(jù)域。

如果一個(gè)中大型的項(xiàng)目不劃分reducer,會(huì)導(dǎo)致單一的reducer文件代碼過于冗長(zhǎng)而難以維護(hù)。我們可以使用Redux提供的 combineReducers()來(lái)將拆分的reducer進(jìn)行合并。詳見:Redux中文文檔。

結(jié)語(yǔ)

事無(wú)巨細(xì),人無(wú)完人。一個(gè)優(yōu)秀的React項(xiàng)目并不代表其沒有缺點(diǎn),代碼優(yōu)化是一個(gè)長(zhǎng)期的過程,唯有發(fā)現(xiàn)問題總結(jié)問題才能給我們帶來(lái)新的突破口。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91142.html

相關(guān)文章

  • Cookie&Session,登錄的那些小事兒~

    摘要:什么叫保持登錄狀態(tài)比如說我在百度頁(yè)面進(jìn)行了登錄,但是不找個(gè)地方記錄這個(gè)登錄態(tài)的話。那我去頁(yè)面,我的登錄態(tài)怎么保持呢難道要攜帶嗎這肯定是不安全的。你讓用戶再登錄一次登個(gè)鬼,再見為什么需要登錄態(tài)? 因?yàn)樾枰R(shí)別用戶是誰(shuí),否則怎么在網(wǎng)站上看到個(gè)人相關(guān)信息呢? 為什么需要登錄體系? 因?yàn)镠TTP是無(wú)狀態(tài)的,什么是無(wú)狀態(tài)呢? 就是說這一次請(qǐng)求和上一次請(qǐng)求是沒有任何關(guān)系的,互不認(rèn)識(shí)的,沒有關(guān)聯(lián)的。 我們...

    terro 評(píng)論0 收藏0
  • 【譯】使用TypeScript兩年后-值得嗎?

    摘要:弄了一個(gè)持續(xù)更新的筆記,可以去看看,鏈接地址此篇文章的地址使用兩年后值得嗎基礎(chǔ)筆記的地址可以也可以。使用,你可以使用抽象類等功能。有關(guān)抽象類的更多信息支持,和方法,只讀屬性。 弄了一個(gè)持續(xù)更新的github筆記,可以去看看,鏈接地址:Front-End-Basics 此篇文章的地址:使用TypeScript兩年后-值得嗎? 基礎(chǔ)筆記的github地址:https://githu...

    RyanQ 評(píng)論0 收藏0
  • 關(guān)于redis的幾件小事(四)redis的過期策略以及內(nèi)存淘汰機(jī)制

    摘要:的過期策略是什么樣的采用了定期刪除惰性刪除的過期策略。定期刪除原理定期刪除指的是默認(rèn)每隔就隨機(jī)抽取一些設(shè)置了過期時(shí)間的,檢測(cè)這些是否過期,如果過期了就將其刪掉。所有只會(huì)抽取一部分而不會(huì)全部檢查。 1.數(shù)據(jù)為什么會(huì)過期? 首先,要明白redis是用來(lái)做數(shù)據(jù)緩存的,不是用來(lái)做數(shù)據(jù)存儲(chǔ)的(當(dāng)然也可以當(dāng)數(shù)據(jù)庫(kù)用),所以數(shù)據(jù)時(shí)候過期的,過期的數(shù)據(jù)就不見了,過期主要有兩種情況, ①在設(shè)置緩存數(shù)據(jù)時(shí)制定了...

    AbnerMing 評(píng)論0 收藏0
  • 4月份前端資源分享

    摘要:更多資源請(qǐng)文章轉(zhuǎn)自月份前端資源分享關(guān)于的思考一款有趣的動(dòng)畫效果跨站資源共享之二最流行的編程語(yǔ)言能做什么到底什么是閉包的第三個(gè)參數(shù)跨域資源共享詳解阮一峰前端要給力之語(yǔ)句在中的值周愛民中國(guó)第二屆視頻花絮編碼規(guī)范前端工程師手冊(cè)奇舞周刊被忽視的 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfron...

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

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

0條評(píng)論

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