react 源码分析之mixin

采用继承的方式

function extend(obj1, obj2) {
    Object.keys(obj2).forEach(function(key) {
            obj1[key] = obj2[key]
        })
}
class People {}
var SetIntervalMixin = {
    componentWillMount: function() {
        this.intervals = [];
    }
    setInterval: function() {
        this.intervals.push(setInterval.apply(null, arguments));
    }
    componentWillUnMount: function() {
        this.intervals.forEach(clearInterval);
    }
}
const Demo1 = React.createClass({
    mixins: [SetIntervalMixin]
})
var SetIntervalMixin = { 
//省略
}
class Demo1 extends Components {};
extends(Demo1.prototype, SetIntervalMixin );

最后更新于

这有帮助吗?