为什么要使用React CreateReactClass?

AnA*_*ice 3 reactjs createreactclass

我想在React中使用这个包:https://github.com/naikus/svg-gauge

React的例子使用CreateReactClass如下:

我需要这个吗?他们为什么要用这个?文档没有提到使用背后的原因CreateReactClass.你能用这个包没有CreateReactClass吗?

import React from "react";
import CreateReactClass from "create-react-class";
import Gauge from "svg-gauge";

const defaultOptions = {
  animDuration: 1,
  showValue: true,
  max: 100
  // Put any other defaults you want. e.g. dialStartAngle, dialEndAngle, radius, etc.
};

const Component = CreateReactClass({
  displayName: "Gauge",
  componentDidMount() {
    this.renderGauge(this.props);
  },

  shouldComponentUpdate(nextProps, nextState) {
    const {props} = this;
    if(props.value !== nextProps.value) {
      this.renderGauge(nextProps);
    }
    return false;
  },

  render() {
    return (
      <div className="gauge-container" ref={el => this.gaugeEl = el}></div>
    );
  },

  renderGauge(props) {
    const gaugeOptions = Object.assign({}, defaultOptions, props);
    if(!this.gauge) {
      this.gauge = Gauge(this.gaugeEl, gaugeOptions);
    }else {
      this.gauge.setValueAnimated(props.value, gaugeOptions.animDuration);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

TLa*_*add 10

最初,React.createClass是您声明组件的唯一方式.稍后添加了类组件和功能无状态组件.随着React 16的发布,React.createClass被删除了,但它被移动到单独的create-react-class包,以便在依赖React.createClass的代码库上更容易升级.您可以在此处阅读有关React.createClass弃用的更多信息

所以该项目的示例只是使用create-react-class包,但您应该能够使用类组件.