June 9 (discuss)
- 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.
- 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.
- 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 extendsReact.PureComponent
. Otherwise it will be left untouched for now. - Property initializers are currently extremely verbose with Flow, and this needs to be fixed.
- 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.