React在狀態管理方面有點特立獨行。雖然它擁有useState
和Context等一流工具,但在響應式全局狀態方面,你更多的是靠自己。 David Ceddia的“React狀態管理庫以及如何選擇”這篇文章很好地討論了各種選擇。我說它“特立獨行”,是因為其他所有主要的JavaScript框架都有自己認可的全局狀態實現。
在我看來,狀態的概念對於前端開發至關重要。它就像組件一樣。它只是一個巧妙的方法來開發數字產品。狀態是我們自己對網站上發生事件的抽象。它可以是側邊欄是打開還是關閉,評論數據的列表,登錄用戶的詳細信息,或者我們需要繪製和製作功能性UI的任何其他內容。
這就是為什麼原生Web組件根本沒有嘗試處理狀態的概念仍然讓我感到驚訝的原因。我沒有足夠的知識來了解原因,但作為一個觀察者,我可以看到開發人員正在努力尋找在Web組件內部和跨Web組件使狀態發揮作用的最佳方法。最近,我遇到了Evan You的@vue/lit
。這是一個用於Web組件的微型框架,它使用lit-html解決模板和重新渲染問題,然後結合Vue的響應式狀態。在我看來,這看起來很酷。
Evan的想法將使用的庫的總大小減少到約6kb。那麼我們在這裡能做到多小呢? Krasimir Tsonev撰寫的“使用JavaScript模塊系統進行狀態管理”一文中,他們根本沒有使用任何庫(可以說是沿途創建了一個小的庫)。狀態管理器可以只是一個我們導入和使用的模塊,它本質上是一個包含值、變異函數和偵聽器的對象。這將狀態管理的開銷降低到幾乎為零,但代價是放棄了使用更強大的庫可以獲得的高效重新渲染、更好的模板和生命週期功能。
說到根本不使用任何庫,Leo Bauza的“Viget如何使用JavaScript?”一文中,他們介紹了他們在HTML基礎之上添加功能所使用的原生模式。看起來所有功能都是通過data-*
屬性應用的,每個data
屬性都有自己的JavaScript模塊(類)來處理該特定功能。這裡似乎沒有處理全局狀態,但他們確實在模塊內手動處理狀態。
我發現所有這些東西都很有趣。在我的工作中,我敢打賭我相當典型。如果這是一個小型項目,我可能會自己動手。如果它是一個中等規模但影響較小的項目,我可能會選擇新奇的——甚至可能是實驗性的——方法。但是,一旦我做的事情變得龐大且影響深遠,我就會發現從大型玩家中選擇更舒服,即使這有時意味著更重的庫。 ?
以上是採取狀態的詳細內容。更多資訊請關注PHP中文網其他相關文章!

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

使用滾動陰影,尤其是對於移動設備,是克里斯以前涵蓋的一個微妙的UX。傑夫(Geoff)涵蓋了一種使用動畫限制屬性的新方法。這是另一種方式。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。