学习reactJs Flux并遇到addEventListener混淆

时间:2015-10-14 01:40:27

标签: reactjs flux

我从下面的链接中学习reactjs flux pattern

https://scotch.io/tutorials/getting-to-know-flux-the-react-js-architecture

我完全感到困惑并且丢失了以下这个位,以下代码何时被触发或使用?我没有看到应用程序中哪个地方会触发this._onChange ...请帮助并解释任何建议,因为我开始学习。

// Listen for changes
  componentDidMount: function() {
    ShoeStore.addChangeListener(this._onChange);
  },

  // Unbind change listener
  componentWillUnmount: function() {
    ShoesStore.removeChangeListener(this._onChange);
  },

在商店中,是否意味着为了触发更新需要运行 ShoesStore.emitChange()

// Emit Change event
  emitChange: function() {
    this.emit('change');
  },

  // Add change listener
  addChangeListener: function(callback) {
    this.on('change', callback);
  },

  // Remove change listener
  removeChangeListener: function(callback) {
    this.removeListener('change', callback);
  }

2 个答案:

答案 0 :(得分:0)

在典型的Flux应用中,您的商店会发出更改(EventEmitter)并调用_onChange,因为它已由addChangeListner分配,之后需要将其删除否则会导致内存泄漏。 componentDidMountcomponentWillUnmount在某些生命周期阶段被调用,正如方法名称所说,就在安装组件之后,就在卸载之前。

答案 1 :(得分:0)

正确答案:( BinaryMuse摘要)

当你创建商店时,你通常会自己调用emitChange()(它通常不是自动的)。