Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (51 sloc) 4.11 KB

June 9 (discuss)


Individual Updates


New Reconciler Plan
  • Making progress on the incremental reconciler (PRs).
  • The next step is to support forking for pausing and cancelling reconciliation.
  • After that, the new reconciler needs to implement flushing changes (e.g. to the DOM).
  • After that, getting parity with the existing APIs. This would take the bulk of the month, and then will be working towards reaching feature parity with existing reconciler.
Observations about setState()
  • We currently support setState(callback: (state, props) => nextState).
  • It is not entirely clear how well that would work with incremental reconciler.
  • The issue is that props become very much “spread in time”: last render could be a while ago, and next render might be in the future.
  • Hard to say if this will turn out to be a problem, worth doing more investigation.


  • Fixed a few issues in React DOM. (#6986, #7002, #7003)
  • Proposed a PR that warns if people mutate props.children. (#7001)
  • We will probably take this PR, Sebastian will be taking another look at it.


  • Working on internal Facebook code to get rid of some of the most common mixins.


  • Ben is enabling class property transform in the internal Facebook build pipeline.


  • Error code work is finished! (#6882, #6946, #6948)
  • Will start working on a new codemod to convert more components to classes with property initializers.


Warning for Mutating Children (#7001)

  • In general, this seems like a good idea, but people are using children in a ton of crazy ways in the wild.
  • We have to figure out if the introduction of this warning is a breaking change or not.
  • We will enable it on Facebook website to see how many callsites are affected.

Current Progress on ES6 Classes

  • Ben is working on enabling property initializers in Facebook codebase.
  • Keyan is working on a new createClass → ES class component transform that uses property initializers (rather than binding in the constructor).
  • Dan is working on getting rid of some of the internal mixins on Facebook websites.
  • Mixins: if a component only uses PureRenderMixin, it will be converted to an ES6 class that extends React.PureComponent. Otherwise it will be left untouched for now.
  • Property initializers are currently extremely verbose with Flow, and this needs to be fixed.

Proposals Champion Process

  • We might want to adopt a proposal champion process similar to TC39.
  • Everyone has an idea of what they want to add / change / fix, but once you start digging into it, there’s just so much context needed, and it’s so hard to change.
  • We’d like to have internal champions the same way TC39 has champions.
  • The responsibility of that person is to answer any question that arises.
  • At TC39, you are expected to have all the answers to the questions, or the thing you’re pushing through gets delayed.
  • Secondary champions can step up to champion other peoples’ ideas (e.g. helping to move a community proposal forward).

Please feel free to discuss these notes in the corresponding pull request.