|
| 1 | +## June 23 ([discuss](https://github.com/reactjs/core-notes/pull/21)) |
| 2 | + |
| 3 | +### Attendees |
| 4 | + |
| 5 | +* [Ben](https://twitter.com/soprano) (React) |
| 6 | +* [Dan](https://twitter.com/dan_abramov) (React) |
| 7 | +* [Jim](http://github.com/jimfb) (React) |
| 8 | +* [Keyan](https://twitter.com/keyanzhang) (React, intern) |
| 9 | +* [Paul](https://twitter.com/zpao) (React) |
| 10 | +* [Sebastian](https://twitter.com/sebmarkbage) (React) |
| 11 | +* [Tom](https://twitter.com/tomocchino) (React) |
| 12 | + |
| 13 | +### Update on `createClass` → ES classes |
| 14 | + |
| 15 | +* [Dan](https://twitter.com/dan_abramov) finished working on a codemod for internal Facebook code that converts 800 files to remove one of the common mixins we used. |
| 16 | +* While doing so, Dan found an issue with inconsistent order of resolving refs during updates. |
| 17 | +* Ideally code should not depend on ref resolution order. |
| 18 | +* Unfortunately some Facebook components rely on it so for now we [fixed this in React](https://github.com/facebook/react/pull/7101). |
| 19 | + |
| 20 | +### JSON Test Renderer |
| 21 | + |
| 22 | +* [Ben](https://twitter.com/soprano) added a [new test renderer intended for snapshot testing](https://github.com/facebook/react/pull/6944). |
| 23 | +* For now, we don’t document it, as we might want to change the API. |
| 24 | +* We *don’t* want people to rely on the renderer output or test against JSON. |
| 25 | +* This renderer is *only* intended for comparing snapshots, not analyzing them. |
| 26 | +* It is also not clear how to dispatch events with it. |
| 27 | +* Jest plans to add a guide on using it later on [its blog](https://facebook.github.io/jest/blog/) after it is more stable. |
| 28 | + |
| 29 | +### Update on 15.2.0 |
| 30 | + |
| 31 | +* We cut the RC last week and React Native RC uses it. |
| 32 | +* It contains a lot of commits but not too many substantial changes. |
| 33 | +* Will be released within two weeks. |
| 34 | + |
| 35 | +### Update on Release Process |
| 36 | + |
| 37 | +* [Paul](https://twitter.com/zpao) started writing a maintainer’s guide to document the entire release process. |
| 38 | +* He ran the 15.2.0 RC release using a new tool he’s working on. |
| 39 | +* The process relies on us assigning semver labels (e.g. “major”, “patch”) but not specific milestones. |
| 40 | +* The tool will automate the release process based on those labels. |
| 41 | +* This should enable us to cut releases more often and let other people (e.g. React Native members) do it. |
| 42 | + |
| 43 | +### Fast Path |
| 44 | + |
| 45 | +* This is a hypothetical optimization [Jim](http://github.com/jimfb) wanted to try. |
| 46 | +* What if we took functional components that render only to DOM components and precompiled them to fast path “templates”? |
| 47 | +* This could be an optimization specific to the DOM renderer. It would use `document.createElement` or `cloneNode()`. |
| 48 | +* However most components use other components so it’s unclear if there are any benefits to doing this. |
| 49 | +* [Sebastian](https://twitter.com/sebmarkbage) had a more generic idea about component folding but it requires whole program analysis. |
| 50 | +* There is nothing conclusive here and this is not something we actively investigate. |
| 51 | + |
| 52 | +### Testing with Feature Flags |
| 53 | + |
| 54 | +* We currently test server rendering by enabling the client side renderer to do server side rendering ([we set `useCreateElement` to `false` and re-run the suite](https://github.com/facebook/react/blob/24dfb56113a214d98f29f69e2c26f67d7e947067/.travis.yml#L80-L81)). |
| 55 | +* We’d like to decouple client side from server side rendering. |
| 56 | +* [Sebastian](https://twitter.com/sebmarkbage)’s experimental “Fiber” reconciler does not yet support server rendering. |
| 57 | +* We need to split out server rendering before switching to Fiber. |
| 58 | + |
| 59 | +### Update on [Fiber](https://github.com/facebook/react/pulls?q=is%3Apr+fiber+is%3Aclosed) |
| 60 | + |
| 61 | +* This is [Sebastian](https://twitter.com/sebmarkbage)’s work on [new core algorithm](https://github.com/facebook/react/issues/6170). |
| 62 | +* Its main goal is to render tree in chunks to avoid dropping frames on large updates. |
| 63 | +* It sort of works but far from feature parity. |
| 64 | +* Need to add support for a lot of things: lifecycle, refs, state. |
| 65 | +* It should be possible to keep `ReactDOM` and `ReactDOMFiber` separate. |
| 66 | +* It would be great to test it in isolation on a single product. |
| 67 | + |
| 68 | +### Flow with Property Initializers |
| 69 | + |
| 70 | +[Jeff](https://twitter.com/lbljeffmo) will release a Flow version that infers the types from the initializers so we can write the types inline instead of specifying the type of the whole expression: |
| 71 | + |
| 72 | +```js |
| 73 | +class Foo { |
| 74 | + doStuff = (x: number): boolean => { |
| 75 | + return true; |
| 76 | + }; |
| 77 | +} |
| 78 | +``` |
| 79 | + |
| 80 | +------------ |
| 81 | + |
| 82 | +Please feel free to discuss these notes in the [corresponding pull request](https://github.com/reactjs/core-notes/pull/21). |
0 commit comments