我一直在使用反應或角度開發web應用程序,但我很困惑爲什麼人們會使用類似react-bootstrap(https://react-bootstrap.github.io/introduction.html)或Angular-bootstrap的庫?因爲當我創建時,我只需要使用鏈接標籤和相應的js庫加載css框架,然後在reactjs方面,我只需要放置組件所需的類。這聽起來不容易嗎?爲什麼我們需要reactjs-bootstrap如果有簡單的方法?
謝謝,
我一直在使用反應或角度開發web應用程序,但我很困惑爲什麼人們會使用類似react-bootstrap(https://react-bootstrap.github.io/introduction.html)或Angular-bootstrap的庫?因爲當我創建時,我只需要使用鏈接標籤和相應的js庫加載css框架,然後在reactjs方面,我只需要放置組件所需的類。這聽起來不容易嗎?爲什麼我們需要reactjs-bootstrap如果有簡單的方法?
謝謝,
它與Bootstrap的Javascript部分有關。通過鏈接標籤,CSS可以很好地工作。
但是React和Angular是有很多操作DOM的底層的Javascript庫。如果您還使用Bootstrap或jQuery來操縱DOM,那麼它可能無法在React或Angular中很好地發揮作用,因爲它們可能在同一時間以不同的方式嘗試做類似的事情。因此,DOM相關的Javascript庫需要重寫,以便與React/Angular很好地配合。
從反應的自舉文檔:
我們不附帶任何包含CSS
他們所處理的是JS。
當您選擇與reactjs
一起使用時,您選擇了一個庫,以更新切割和更復雜的方式更新您的DOM。
它具有虛擬DOM和一堆算法(如Diffing algorithm),以確定何時以及如何以最快,最有效和最高效的方式更新DOM。
當您將此功能與另一個更新DOM的庫結合使用時,您基本上會中斷這些算法以完成其工作。
除了性能方面,您正在對付反應模式,您打破了「組件模式」。
React-Bootstrap
在這裏可以幫助您用其組件維護組件模式。你只需要包含css
和其他資源文件。
它們的組件除了用適當的類名對應引導程序的css文件中的類來渲染HTML之外,什麼都不做。
他們以同樣的方式通過props
這樣做所有其他組件。
通過這種方式,您可以在不破壞模式的情況下以自然方式使用其他組件可以很好地與其他組件搭配使用的引導組件。
是的,它更容易傾倒一些css
和js
文件和東西的工作,但它很難維護,調試和規模。
是這樣嗎?我一直在與他們合作,但一切似乎都很好。就像菜單的工作方式一樣,以及其他任何使用js的css組件。我還擔心的一個問題是,這些庫的開發似乎被延遲了,或者我不能使用任何我想使用的引導版本。 – user3856437
來自Facebook: * React不知道在React之外對DOM做出的更改。它根據自己的內部表示來確定更新,如果相同的DOM節點被另一個庫操縱,則React會感到困惑並且無法恢復。*這並不意味着組合React是不可能的或者甚至是一定困難的與其他影響DOM的方式一樣,你只需要注意每個人正在做什麼。* 所以,只有當你知道你的DOM庫如何操作東西的細節,並能夠編碼以防止任何意外的結果,使用它們。 –
好的,我開悟了。我喜歡你的兩個答案,但2號給我的想法不是因爲它的運行必須是正確的。作爲一名軟件開發人員,我總是希望有最好的實踐。我將從現在開始使用它們。謝謝。 – user3856437