首页 男生 其他 深入浅出React和Redux

6.1.4 曾经的React Mixin

深入浅出React和Redux 程墨 1597 2021-04-06 02:29

  您可以在百度里搜索“深入浅出React和Redux 艾草文学(www.321553.xyz)”查找最新章节!

  

  6.1.4 曾经的React Mixin

  除了上面提到的高阶组件,React还有一个可以提供组件之间复用代码的功能叫Mixin,不过这已经是一个不建议使用的功能,在这里讲一段历史故事为的是让大家理解从灵活到不灵活的原因。

  我们可以定义这样一个包含shouldComponentUpdate函数的Mixin,代码如下:

  const ShouldUpdateMixin = {

  shouldComponentUpdate: function() {

  return !this.props.useCache;

  }

  }

  但是Mixin只能在用React.createClass方式创建的组件类中才能使用,不能在通过ES6语法创建的React组件中使用。

  下面是一个使用Mixin的代码样例:

  const SampleComponent = React.createClass({

  mixins: [ShouldUpdateMixin],

  render: function() {

  // 实现render函数

  }

  });

  使用React.createClass创建出来的React组件SampleComponent,因为有mixins字段的存在,成员方法中就“混入”了ShouldUpdateMixin这个对象里的方法。

  第一眼看过去,Mixins似乎使用非常灵活。但是,Mixin因为太灵活,导致难以管理,而且作为一项设计原则,应该尽量把state从组件里抽取出来,尽量构建无状态组件,Mixins却反其道而行之,鼓励往React组件中加入状态,这也是一个很大的缺陷。

  对于Mixins的批评不胜枚举,不用过多描述。我们只需要知道,在ES6的React组件类定义方法中不能使用Mixin,React官方也很明确声明Mixin是应该被废弃的方法。所以我们只需要知道在React的历史上,曾经有这样一个重用代码的解决方法就足够了。 深入浅出React和Redux

目录
设置
手机
书架
书页
评论