|
1 | 1 | # OverReact Changelog |
2 | 2 |
|
| 3 | +## [3.1.0](https://github.com/Workiva/over_react/compare/3.0.0+dart2...3.1.0) |
| 4 | + |
| 5 | +### Full React JS 16.x Component Lifecycle Support |
| 6 | + |
| 7 | +- The new `UiComponent2` classes<sup>*</sup> replace the now deprecated `UiComponent` classes. |
| 8 | + |
| 9 | + <sup>*</sup>_(`UiComponent2`, `UiStatefulComponent2`, `FluxUiComponent2`)_ |
| 10 | + - Faster |
| 11 | + - Initial renders ~10% faster |
| 12 | + - Re-renders ~7 - 30% faster |
| 13 | + - Improved developer experience |
| 14 | + - Props and state values now show up in the React DevTools just as they would if you were using React JS, and primitive values (strings, numbers, booleans) can be edited live, just like in React JS! |
| 15 | + |
| 16 | +  |
| 17 | + - Easier to maintain |
| 18 | + - Easier integration with JS libs |
| 19 | + - `ReactJsComponentFactoryProxy` makes it easy to use JS components with Dart! |
| 20 | + - [Check out this example of MaterialUI components!](https://github.com/cleandart/react-dart/blob/5.1.0-wip/example/js_components/js_components.dart#L115-L145) |
| 21 | + - Supports new lifecycle methods, allowing us to use Concurrent Mode in the future |
| 22 | + - <s>`componentWillMount`</s> => `componentDidMount` |
| 23 | + - <s>`componentWillReceiveProps`</s> => `getDerivedStateFromProps` _(new)_ |
| 24 | + - <s>`componentWillUpdate`</s> => `getSnapshotBeforeUpdate` _(new)_ |
| 25 | + - `componentDidCatch` / `getDerivedStateFromError` _(new)_ |
| 26 | + - Adds support for [error boundaries](https://reactjs.org/docs/error-boundaries.html). |
| 27 | + - OverReact also provides an `ErrorBoundary` component out of the box that you can wrap around your components, and an `ErrorBoundaryMixin` that you can use as a starting point to build your own custom error boundary component! |
| 28 | + |
| 29 | +> [__Learn more about upgrading to `UiComponent2`__](https://github.com/Workiva/over_react/blob/master/doc/ui_component2_transition.md#updating) |
| 30 | +
|
| 31 | +### Improved, stable [Context](https://reactjs.org/docs/context.html) API |
| 32 | + |
| 33 | +- _"Context provides a way to pass data through the component tree without having to pass props down manually at every level. … Context is primarily used when some data needs to be accessible by many components at different nesting levels. Apply it sparingly because it makes component reuse more difficult."_ |
| 34 | + |
| 35 | +### New `over_react_redux.dart` Library |
| 36 | + |
| 37 | +- To take full advantage of the new stable `Context` API, we have built atop |
| 38 | + the awesome [redux.dart library](https://github.com/johnpryan/redux.dart) to make it easy |
| 39 | + to set up redux provider(s) / consumer(s) for OverReact components that enable granular, targeted updates! |
| 40 | + - Check out [some examples](https://github.com/Workiva/over_react/tree/master/web/over_react_redux) |
| 41 | + by cloning this project locally, running `webdev serve` from the root of the project, and navigating to <http://localhost:8080/over_react_redux/>. |
| 42 | + - Use it in your project by [upgrading your `UiComponent`s to `UiComponent2`](https://github.com/Workiva/over_react/blob/master/doc/ui_component2_transition.md#updating) and importing `package:over_react/over_react_redux.dart`! |
| 43 | +- We've even got some sweet [redux dev tools you can use](https://github.com/Workiva/over_react/blob/master/doc/over_react_redux_documentation.md#using-redux-devtools) to make the inspection of connected state a breeze! |
| 44 | +  |
| 45 | + |
| 46 | +> [__Learn more about using over_react_redux.dart__](https://github.com/Workiva/over_react/blob/master/doc/over_react_redux_documentation.md) |
| 47 | +
|
| 48 | +### [Portals](https://reactjs.org/docs/portals.html) |
| 49 | + |
| 50 | +- _"Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component."_ |
| 51 | + |
| 52 | +### [Fragments](https://reactjs.org/docs/fragments.html) |
| 53 | + |
| 54 | +- _"A common pattern in React is for a component to return multiple elements. Fragments let you group a list of children without adding extra nodes to the DOM."_ |
| 55 | +- `UiComponent.render()` can now return a `ReactFragment` (multiple children) or other values like strings and lists instead of just a single `ReactElement`. |
| 56 | + |
| 57 | +### No more Dart 1 SDK support |
| 58 | + |
| 59 | +- With the release of `3.1.0` comes the end of our `+dart1` / `+dart2` dual releases that we have been |
| 60 | + maintaining for over a year. Time to upgrade to Dart 2! |
| 61 | + |
| 62 | +> [Full list of 3.1.0 Changes](https://github.com/Workiva/over_react/milestone/3?closed=1) |
| 63 | +
|
3 | 64 | ## 3.0.2 |
4 | 65 |
|
5 | 66 | Dependency updates: |
@@ -42,6 +103,15 @@ __ReactJS 16.x Support__ |
42 | 103 |
|
43 | 104 | * This release brings in the `SafeRenderManager` utilities added to the 3.x alpha line-of-release via [#390] |
44 | 105 |
|
| 106 | +## 2.7.0 |
| 107 | + |
| 108 | +> Complete `2.7.0` Changsets: |
| 109 | +> |
| 110 | +> - [Dart 2](https://github.com/Workiva/over_react/compare/2.6.1+dart2...2.7.0+dart2) |
| 111 | +> - [Dart 1](https://github.com/Workiva/over_react/compare/2.6.1+dart1...2.7.0+dart1) |
| 112 | +
|
| 113 | +* This release brings in the `SafeRenderManager` utilities added to the 3.x alpha line-of-release via [#390] |
| 114 | + |
45 | 115 | ## 2.6.1 |
46 | 116 |
|
47 | 117 | > Complete `2.6.1` Changsets: |
|
0 commit comments