UNPKG

5.3 kBMarkdownView Raw
1# Change Log
2
3## UPCOMING
4
5* Add new changes here as they land*
6
7- Performance optimization to suppress re-rendering components:
8 - When subscribed selectors evaluate to the same value. (#749, #952)
9 - On initial render when not using React Concurrent Mode (#820)
10- Memory management
11- Selector cache configuration
12
13## 0.3.0 (2021-5-14)
14
15In the future to support garbage collection, there is a slight breaking change that `Snapshot`'s will only be valid for the duration of the callback or render. A new `retain()` API can be used to persist them longer. This is not enforced yet, but Recoil will now provide a warning in dev-mode if a `Snapshot` is used past its lifetime. (#1006)
16
17### New Features / Improvements
18- Add `override` prop to `<RecoilRoot>` (#973)
19- Add `getCallback()` to selector evaluation interface (#989)
20- Improved TypeScript and Flow typing for `Loadable`s (#966, #1022)
21
22### Performance Optimizations
23- Improve scalability (time and memory) of Atom families by cleaning up a legacy feature.
24
25### Bug Fixes
26- Throwing an error in an async selector should be properly caught by `<ErrorBoundary>`'s (#998, #1017)
27- Fix for Atom Effects `onSet()` should not be called when triggered from `setSelf()` initializing with a Promise or from the same `onSet()` handler. (#974, #979, #953, #986)
28- Improved support for Safari (#967, #609)
29- Objects stored in selectors are properly frozen in dev mode (#911)
30
31## 0.2.0 (2021-3-18)
32
33### Major improvements
34
35- More reliable async selectors
36- Improved performance using HAMT data structures (b7d1cfddec66dae).
37
38### Other improvements
39
40- Changed semantics of waitForAny() such that it will always return loadables unless everything is loading. This better aligns behaviour of waitForAny() and waitForNone()
41- Added a waitForAllSettled helper analogous to Promise.allSettled. (4c95591)
42- Friendly error message for misuse of useRecoilCallback (#870)
43- Friendly error message if you try to use an async function as a selector setter, which is not supported. (#777)
44- Improved React Native support. (#748, #702)
45- Added useGetRecoilValueInfo_UNSTABLE() hook for dev tools. (#713, #714)
46
47### Bug fixes
48
49- Selectors now treat any non-Promise that is thrown as an error, rather than only instances of Error. (f0e66f727)
50- A child of RecoilRoot could sometimes have its state updated after being unmounted. (#917)
51- The error message for missing RecoilRoot wasn't displayed on React experimental releases. (#712)
52- IE 11 compatibility (#894, d27c800d8)
53- Errors shouldn't be frozen (#852)
54- Atom effects could fail to initialize atoms in certain cases (#775).
55- Async selectors would fail with multiple React roots (a618a3).
56
57## 0.1.3 (2021-3-2)
58
59- Fixed peer dependencies
60
61## 0.1.2 (2020-10-30)
62
63- Fix TypeScript exports
64
65## 0.1.1 (2020-10-29)
66
67- Performance Improvements
68- Experimental React Native support
69- Experimental Atom Effects
70- Experimental Snapshot construction
71
72## 0.0.13 (2020-09-16)
73
74- Fix for bug affecting SSR
75
76## 0.0.12 (2020-09-15)
77
78- Fix for bug affecting SSR on development builds
79
80## 0.0.11 (2020-09-15)
81
82- Experimental React Concurrent Mode Support
83- Performance
84- Flow Types
85- ES, CommonJS, and UMD packages
86- Synchronization Across React Roots
87- Preliminary Developer Tools API
88- Test Infrastructure Fixes
89
90## 0.0.10 (2020-06-18)
91
92### Bug Fix
93
94- Fix exports for snapshot hooks
95
96## 0.0.9 (2020-06-17)
97
98### Features
99
100- TypeScript support now rolled into Recoil repository and package.
101- Recoil Snapshot API for observing and managing global Recoil state.
102
103### Improvements
104
105- Throw error with meaningful message if user doesn't use an atom or selector with most Recoil hooks (#205) - Thanks @alexandrzavalii
106- Improve testing (#321, #318, #294, #262, #295) - Thanks @aaronabramov, @Komalov, @mondaychen, @drarmstr, and @tyler-mitchell
107- Improve open-source build (#249, #203, #33) - Thanks to @tony-go, @acutmore, and @jaredpalmer
108
109### Bug Fixes
110
111- Some fixes for Server Side Rendering, though we do not officially support it yet. (#233, #220, #284) - Thanks @fyber-LJX, @Chrischuck, and @aulneau
112- Fix selectors recording dependency subscriptions in some cases (#296) - Thanks @drarmstr
113- Fix updaters in `useRecoilCallback()` getting current state (#260) - Thanks @drarmstr
114- Fix error messages when throwing certain errors in the open-source build. (#199) - Thanks @jonthomp
115- Reduce Flow errors for open-source builds (#308) - Thanks @Komalov
116
117## 0.0.8 (2020-05-30)
118
119### Bug Fixes
120
121- Build system and repository syncing fixed.
122- Fixed a bug where atoms that stored self-referential structures would cause an infinite loop. (#153)
123- Fixed bugs affecting Server-Side Rendering. (#53)
124
125### Features
126
127- TypeScript support is now available via DefinitelyTyped.
128- `atomFamily` and `selectorFamily`: these provide a standard way to create atoms and selectors using memoized functions. Compared with doing this yourself, in the future these will help with memory management.
129- `noWait`, `waitForNone`, `waitForAny`, `waitForAll`: helpers for concurrency and other advanced logic in async selectors.
130- `constSelector` and `errorSelector`: selectors that always evaluate to a constant or always throw an error.
131- `readOnlySelector`: wraps a read-write atom or selector in a read-only interface, for when you need type covariance.