簡體   English   中英

使用 React Native 和 Redux 的動畫狀態管理

[英]State Management for Animations Using React Native and Redux

背景

我一直在使用 React Native 和 Redux 構建一個應用程序,以評估是否將它用於即將到來的 Swift 項目並完全原生。

我真的相信 Dan Abramov 的 Redux 技術是一個可靠的工程案例。 不更新狀態並將視圖作為狀態的函數很棒,我非常贊同這個想法。 我來的地方有點不解,就是將動畫混入其中。

場景

更復雜的動畫需要狀態管理,例如,淡出視圖,替換文本並將其淡入。我只想在動畫中途更新文本,這很容易使用本地狀態和利用動畫框架。

假設要顯示的文本是由狀態驅動的,它會在狀態通過適當的動作和減速器組合更改的那一刻更新,但為了演示,我需要在這兩個動畫之間使用它。

一個例子是從列表中選擇一條記錄,其中有一個屏幕標簽顯示所選記錄的名稱。 理想情況下,您希望立即更新全局存儲,但對標簽本身執行一個很好的轉換。

我的想法

在我看來,在組件內部使用“本地狀態”來處理動畫,以及使用主要的 Redux 存儲來處理更全面的數據或架構狀態是有一定意義的。 問題是這打破了視圖是全局狀態函數的想法,我不確定這是否適合我。

另一方面,通過編寫大量的動作、減速器和雜亂的存儲來管理動畫序列等也感覺不干凈。

問題

我知道 React Native 還處於起步階段,並不是每個人都在使用 Redux,但是在這種情況下是否有一種普遍接受的動畫管理方式?

我只開發了 9 個月的 React,所以與像 Matt 這樣的人相比,我可能是一個 n00b,我可以毫不猶豫地說 redux 很棒,但它不應該取代內部組件狀態所有情況。 特別是對於動畫之類的東西。 你自己問過這個問題,但我再次問:為什么這需要處於全局狀態? Redux 允許應用程序中的組件在整個應用程序中發生事情時獲得更新的狀態。 然而,這並不意味着除了 Redux 存儲之外,您的應用程序中的任何地方都不應該有任何狀態。

一個比我聰明得多的人說

如果您感到有壓力以“Redux 方式”做事,這可能表明您或您的隊友太認真了。 它只是你工具箱中的一個工具,一個瘋狂的實驗。 當地狀態很好....

Redux 提供的權衡是添加間接性以將“發生的事情”與“事情如何變化”分離。 這樣做總是好事嗎? 不,這是一種權衡。

我引用的是什么? 什么樣的褻瀆的 React 開發人員會說 Redux 不應該用於 React 的所有事情??

我告訴你是誰。 Redux 的創建者

https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.flb8fzjr8

TLDR在有用和有意義的地方使用 Redux。 對於它應該做的事情來說真是太棒了。 但不要試圖將圓釘裝入方孔中。

我希望這是有用的。

暫無
暫無

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

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