搜索

首页  >  问答  >  正文

在 React.js 中创建动画计数器:分步指南

我正在寻找一种在 React 中为计数器设置动画的方法。

为了举例,我有以下结构的 3 个组件:

(Master是logicComponent和Counter的父级)

逻辑组件将一个数字传递给主控组件,主控组件将其传递给应该执行动画的计数器组件。 逻辑组件以增量方式发送数字,也就是说,每次发生某些事情时,它都会发送更新。

例如,logicCounter 调用 Master 十次来递增计数器,我预计 Counter 将渲染 10 次,显示 10 个数字。 到目前为止我尝试过的所有方法都显示了最终数字(10),没有任何增量。

在寻找解决方案后,我遇到了 Window.requestAnimationFrame(),我正在寻找一种在 React 中实现它的正确方法。

我试图避免使用第 3 方 npms/库。

希望得到您的帮助/想法。 谢谢。

P粉635509719P粉635509719486 天前751

全部回复(1)我来回复

  • P粉214089349

    P粉2140893492023-10-22 09:06:16

    对于 React-JS 中的动画计数器,我使用 'react-count' :围绕“CountUp.js”的可配置 React 组件包装器。

    请参考:https://github.com/glennreyes/react-countup。 查看现场演示:https://tr8tk.csb.app/ 步骤:

    安装:

    *npm install react-countup --save*
    or
    *yarn add react-countup*

    简单示例:

    import React from 'react';
    import { render } from 'react-dom';
    import CountUp from 'react-countup';
    
    render(
      <CountUp start={0} end={160526} />,
      document.getElementById('root')
    );

    高级示例:

    import React from 'react';
    import { render } from 'react-dom';
    import CountUp from 'react-countup';
    
    const onComplete = () => {
      console.log('Completed!');
    };
    
    const onStart = () => {
      console.log('Started!');
    };
    
    render(
      <CountUp
        className="account-balance"
        start={160527.0127}
        end={-875.0319}
        duration={2.75}
        useEasing={true}
        useGrouping={true}
        separator=" "
        decimals={4}
        decimal=","
        prefix="EUR "
        suffix=" left"
        onComplete={onComplete}
        onStart={onStart}
      />,
      document.getElementById('root'),
    );

    回复
    0
  • 取消回复