react spring附带一个animated
函数,允许组件本地修改,而无需重新渲染组件。我发现动画组件有两种类似于react native's animated components的方法。两者之间是否存在任何联系,或者像.interpolate()
这样的概念在动画库中非常常见?
该库最初是Animated的一个分支,在内部仍然具有很多相似之处。 Christopher Chedeau的Animated有一个专门用于网络的回购:https://github.com/animatedjs/animated可悲的是它不再维护了。
它的工作方式是组件通过createAnimatedComponent(公开为“动画”)来包装:https://github.com/react-spring/react-spring/blob/master/src/animated/createAnimatedComponent.tsx
这个更高阶的组件拦截样式和属性(它们不是原始值而是自我更新类)。它调用“applyAnimatedValues”来写入React外部的目标。每个目标(dom,native,konva,three等)都必须填写它。例如,dom如何应用这些道具:https://github.com/react-spring/react-spring/blob/master/src/targets/web/globals.ts#L82-L127
希望有所帮助!