前言:从 React 0.13 开始,mixin 逐渐退出历史舞台,React ES6 将不再支持 mixin,否则有悖 JavaScript 语义化的初衷。所以,这节我们只是简单说明一下 React 的 mixin,下一节才是我们的重点内容, React ES6 如何处理 mixin 。
- mixin 的缺点
- mixin 是什么
mixin 允许我们定义可以正在多个组件中公用的方法。
- 为什么使用 mixin
React 使用组合而不是继承来处理父子组件。无法通过继承父类来实现公共功能,所以 React 提供了mixin的机制。为了将同样的功能添加到多个组件当中,你需要将这些通用的功能包装成一个 mixin,然后导入到你的模块中。
- mixin 简单用例
//定义一个mixin
var DefaultColorMixin = {
getDefaultProps: function () {
return {color: red};
}
};
//加入到组件中
var Example= React.createClass({
mixins: [ DefaultColorMixin ],
render: function() {
return <h2>Hello {this.props.name}</h2>;
}
});
ReactDOM.render(<Example/>, document.getElementById('app'));
为了使用 mixin,我们只需要简单得在组件中加入 mixins 属性,然后把刚才我们写的 mixin 包裹成一个数组,将它作为该属性的值即可。