簡體   English   中英

使用Redux的store.getState()和store.dispatch()進行更改而無需訂閱React?

[英]Using Redux's store.getState() and store.dispatch() to make changes without subscribing in React?

我觀看了Redux入門系列,並正在通過修改現有的React代碼來使用Redux。 但是,我陷入了一個困境,似乎找不到任何答案:我想在特定的事件(如UI交互)上修改商店數據(我的許多React組件將使用該商店數據),但是我沒有希望任何UI組件都可以訂閱對商店所做的所有更改。

我是否可以/應該制作一個單獨的.js文件,該文件具有可以直接訪問商店的函數來調用.getState()和.dispatch(),我的UI組件可以在需要時導入和調用這些函數,而無需訂閱商店本身?

還是我從根本上誤會了一些東西,訂閱這家商店會產生完全相同的效果? 我的目標是優化速度; 這就是為什么我切換到Redux的原因。

我想在諸如UI交互之類的特定事件上修改商店數據(我的許多React組件將使用許多商店數據),但是我不希望任何UI組件訂閱對商店所做的每項更改。

Checkout react-redux ,它是react和redux應用程序的正式綁定。 它提供了一種方法,可以將特定的組件訂閱到redux,並且僅偵聽您感興趣的更改。最重要的是,它還實現了各種優化以避免不必要的重新渲染。

我是否可以/應該制作一個單獨的.js文件,該文件具有可以直接訪問商店的函數來調用.getState()和.dispatch(),我的UI組件可以在需要時導入和調用這些函數,而無需訂閱商店本身?

您可以做任何喜歡的事情,但是如果一段時間后變得無法維護,請不要感到驚訝。

還是我從根本上誤會了一些東西,訂閱這家商店會產生完全相同的效果?

是的,您可以使用react-redux並僅訂閱您關心的部分商店。

我的目標是優化速度; 這就是為什么我切換到Redux的原因。

不確定您的特定情況是/曾經是什么,但是總的來說,redux的目的是提供一種可預測且可管理的方式來維持應用程序狀態-它不會直接加速任何事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM