Reactjs 理解反应道具

Reactjs 理解反应道具,reactjs,Reactjs,查看Facebook的react示例,我发现这段代码显示了如何使用mixin设置时间间隔。我不知道这是怎么回事。间隔时间。我知道状态保存渲染更改数据,而道具处理从父组件传递的数据,理想情况下。我会用这个.props.interval来代替,但是两者之间有什么区别呢 var SetIntervalMixin = { componentWillMount: function() { this.intervals = []; }, set

查看Facebook的react示例,我发现这段代码显示了如何使用mixin设置时间间隔。我不知道这是怎么回事。间隔时间。我知道状态保存渲染更改数据,而道具处理从父组件传递的数据,理想情况下。我会用
这个.props.interval
来代替,但是两者之间有什么区别呢

      var SetIntervalMixin = {
      componentWillMount: function() {
        this.intervals = [];
      },
      setInterval: function() {
        this.intervals.push(setInterval.apply(null, arguments));
      },
      componentWillUnmount: function() {
        this.intervals.forEach(clearInterval);
      }
    };

    var TickTock = React.createClass({
      mixins: [SetIntervalMixin], // Use the mixin
      getInitialState: function() {
        return {seconds: 0};
      },
      componentDidMount: function() {
        this.setInterval(this.tick, 1000); // Call a method on the mixin
      },
      tick: function() {
        this.setState({seconds: this.state.seconds + 1});
      },
      render: function() {
        return (
          <p>
            React has been running for {this.state.seconds} seconds.
          </p>
        );
      }
    });

    ReactDOM.render(
      <TickTock />,
      document.getElementById('example')
    );
var SetIntervalMixin={
componentWillMount:function(){
这个值为[];
},
setInterval:function(){
this.interval.push(setInterval.apply(null,参数));
},
componentWillUnmount:function(){
这个.interval.forEach(clearInterval);
}
};
var TickTock=React.createClass({
mixin:[SetIntervalMixin],//使用mixin
getInitialState:函数(){
返回{秒:0};
},
componentDidMount:function(){
this.setInterval(this.tick,1000);//调用mixin上的方法
},
勾选:函数(){
this.setState({seconds:this.state.seconds+1});
},
render:function(){
返回(

React已运行{this.state.seconds}秒。

); } }); ReactDOM.render( , document.getElementById('示例') );
当您使用
道具时,您可以100%确定该值应该来自其直接父组件(作为属性)

当您看到
状态
时,您就知道该值是在该组件中生成/创建的,它本身就是

当状态发生变化时,如果下面的每个孩子收到的道具发生变化,他们都会使用该键进行渲染


你的混音不是一个正常的反应类。它只是一个对象,因此
this
this.interval
的情况下,它是对执行方法的对象范围的引用-
滴答声

当您使用
道具
时,您100%肯定地知道该值应该来自它的直接父组件(作为属性)

当您看到
状态
时,您就知道该值是在该组件中生成/创建的,它本身就是

当状态发生变化时,如果下面的每个孩子收到的道具发生变化,他们都会使用该键进行渲染


你的混音不是一个正常的反应类。它只是一个对象,因此
this
this.interval
的情况下,它是对执行方法的对象范围的引用-
滴答声

谢谢,这对我来说是有意义的。谢谢,这对我来说是有意义的。