繁体   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