在 React 中管理同一元件的多個例項中的狀態
當您使用 react 並擁有同一元件的多個例項時,管理狀態可能會變得很棘手。根據元件需要互動的方式,您需要以不同的方式處理狀態。這是我發現效果很好的方法。 獨立例項:將狀態保留在元件內部如果您的元件不需要相互通訊,最好將它們的狀態保留在元件內。這樣,每個例項都有自己的狀態,其中一個例項的更改不會影響其他例項。function counter() { const [count, setcount] = usestate(0); return ( <div> <p>count: {count}</p> <button onclick="{()"> setcount(count + 1)}>increment</button> </div> );}// usage<counter></counter> // instance 1<counter></counter> // instance 2登入後複製在這裡,每個 counter 元件都會跟蹤自己的計數。因此,如果您單擊一個計數器中的按鈕,則不會更改另一個計數器中的計數。 依賴例項:管理父元件中的狀態但是,如果元件需要共享某些狀態或以協調的方式工作,最好將狀態移至父元件。父級可以管理共享狀態並將其作為 props 傳遞下來。這可確保所有例項保持同步並順利協同工作。function Parent() { const [sharedCount, setSharedCount] = useState(0); return ( <div> <p>Total Count: {sharedCount}</p> <counter count="{sharedCount}" setcount="{setSharedCount}"></counter><counter count="{sharedCount}" setcount="{setSharedCount}"></counter></div> );}function Counter({ count, setCount }) { return ( <div> <p>Count: {count}</p> <button onclick="{()"> setCount(count + 1)}>Increment</button> </div> );}登入後複製這種方法之所以有效,是因為當狀態位於父元件中時,對該狀態的任何更新都會觸發所有例項的重新渲染,確保它們都顯示最新的 ui。如果將狀態單獨儲存在每個例項中,則只有狀態發生更改的例項才會重新渲染,從而導致例項之間的 ui 不一致。我的專案中的示例我在構建手風琴元件時發現了這一點。這是我自己工作中的兩個例子:獨立手風琴例項:示例。在此設定中,每個手風琴例項獨立工作。依賴的手風琴例項:示例。在此版本中,所有手風琴例項相互依賴並保持同步。快速回顧如果元件單獨工作,請將狀態儲存在每個元件內。如果他們需要共享狀態或以協調的方式一起工作,請在父級中管理狀態。在構建這些手風琴示例時,這種方法對我產生了很大的影響。希望對你也有幫助! 以上就是在 React 中管理同一元件的多個例項中的狀態的詳細內容,更多請關注我的其它相關文章!
相關文章
- React 回憶錄(四)React 中的狀態管理React
- React中的高階元件,無狀態元件,PureComponentReact元件
- (譯)詳解在React中跨元件分發狀態的三種方法React元件
- React中的另一種狀態管理方案ValtioReact
- React 深入系列1:React 中的元素、元件、例項和節點React元件
- 在Windows中執行多個MySQL例項WindowsMySql
- React的狀態管理React
- 如何直觀的在JavaScript中管理狀態JavaScript
- Blazor中的無狀態元件Blazor元件
- 一個例項中,多個synchronized方法的呼叫synchronized
- React Native 中的狀態列React Native
- 同一會話中的多個 WebRequest會話Web
- 悟空活動中臺 - 微元件狀態管理(上)元件
- React之配置元件的props(兩個例項)React元件
- ASP.NET中的狀態管理ASP.NET
- 記前端狀態管理庫Akita中的一個坑前端
- 【Oracle ASM】關於asm例項與db例項中的磁碟狀態_詳細分析過程OracleASM
- react 狀態機管理React
- PDM系統在技術狀態管理中的應用研究
- Linux中執行多個MySQL例項LinuxMySql
- 詳解 state 狀態模式及在 C++ 設計模式程式設計中的使用例項C++設計模式程式設計
- React獲取元件例項React元件
- 優雅的在React元件中註冊事件React元件事件
- TypeScript在React高階元件中的使用技巧TypeScriptReact元件
- React元件的狀態及生命週期事件React元件事件
- 我理想中的狀態管理工具
- React 狀態管理:狀態與生命週期React
- react之redux狀態管理ReactRedux
- 在Cucumber中應用 PicoContainer容器實現元件的例項化AI元件
- React中的高階元件React元件
- React元件/元素與例項分析React元件
- 在狀態列中插入類似進度條的可視控制元件控制元件
- 如何區分例項化網格中的每個例項
- 在例項中呼叫 Invoke 型別的類型別
- MySQL在Windows上安裝多個例項的方法MySqlWindows
- 掌握 Nuxt 3 中的狀態管理:實踐指南UX
- 在畫中畫視窗中安裝 React 元件React元件
- 在同一臺計算機中執行多個MySQL服務計算機MySql