⏱ Implement pauseExecution, continueExecution, and dumpQueue for Scheduler
Kevin Chavez (mrkev) added three new methods to the Scheduler package to make it simpler to build debugger tools in the browser.
https://github.com/facebook/react/pull/14053
Kevin Chavez (mrkev) added three new methods to the Scheduler package to make it simpler to build debugger tools in the browser.
https://github.com/facebook/react/pull/14053
GitHub
Implement pauseExecution, continueExecution, dumpQueue for Scheduler by mrkev · Pull Request #14053 · facebook/react
pauseExecution: pauses the scheduler from making progress running subsequent callbacks in the queue.
continueExecution: continues executing callbacks from the queue.
dumpQueue: returns an array of ...
continueExecution: continues executing callbacks from the queue.
dumpQueue: returns an array of ...
🐶 Automated Fixture Tests
Some of the manual fixtures are now tested automatically with the help of Puppeteer, an automation helper for Chromium.
https://github.com/facebook/react/pull/14370
Some of the manual fixtures are now tested automatically with the help of Puppeteer, an automation helper for Chromium.
https://github.com/facebook/react/pull/14370
GitHub
Automated fixture tests by bvaughn · Pull Request #14370 · facebook/react
Use Puppeteer to automate fixtures testing against upcoming releases. (At the moment, I'm only testing two fixtures– packaging and scheduler– but we could add more pretty easily!)
If we wanted ...
If we wanted ...
⏳ Fixed Scheduler setTimeout Fallback
An issue in the Scheduler package caused useEffect to be broken in React Native with JavaScript Core.
https://github.com/facebook/react/pull/14358
An issue in the Scheduler package caused useEffect to be broken in React Native with JavaScript Core.
https://github.com/facebook/react/pull/14358
GitHub
Fixed scheduler setTimeout fallback by bvaughn · Pull Request #14358 · facebook/react
Resolves #14352 (and facebook/react-native/issues/21967)
Restores a working setTimeout based fallback for the scheduler package.
Relocates test-specific code into a new NPM package, jest-mock-sche...
Restores a working setTimeout based fallback for the scheduler package.
Relocates test-specific code into a new NPM package, jest-mock-sche...
🛥 Avoid a V8 Performance Cliff When Profiling
Thanks to the help of V8 team members, the React team was able to find and fix a significant performance cliff during the commit phase when the React profiler is enabled.
https://github.com/facebook/react/pull/14383
Thanks to the help of V8 team members, the React team was able to find and fix a significant performance cliff during the commit phase when the React profiler is enabled.
https://github.com/facebook/react/pull/14383
GitHub
Prevent a v8 deopt when profiling by bvaughn · Pull Request #14383 · facebook/react
Resolves #14365
📌 Enable Hooks In Fabric
Fabric is the ongoing large-scale architectural rewrite of React Native. You can learn more about it in the State of React Native 2018 blog post.
https://github.com/facebook/react/pull/14301
Fabric is the ongoing large-scale architectural rewrite of React Native. You can learn more about it in the State of React Native 2018 blog post.
https://github.com/facebook/react/pull/14301
GitHub
Enable hooks in fabric by sahrens · Pull Request #14301 · facebook/react
because hooks are awesome.
🚸 RFC: Fragment Refs
Fragment refs are presented as an alternative to findDOMNode(). They would allow you to receive an array of DOM nodes rendered by children.
https://github.com/reactjs/rfcs/pull/97
Fragment refs are presented as an alternative to findDOMNode(). They would allow you to receive an array of DOM nodes rendered by children.
https://github.com/reactjs/rfcs/pull/97
GitHub
Fragment refs RFC by sebmarkbage · Pull Request #97 · reactjs/rfcs
Summary
This is an alternative to findDOMNode.
Basic example
function Foo({children}) {
let fragmentRef = useRef();
useEffect(() => {
let domNodes = fragmentRef.current;
// ...
...
This is an alternative to findDOMNode.
Basic example
function Foo({children}) {
let fragmentRef = useRef();
useEffect(() => {
let domNodes = fragmentRef.current;
// ...
...
🗂 RFC: Custom Host Node
Custom Host Nodes are an alternative to the useMutationEffect() API that was originally part of the hooks RFC but got removed later on.
https://github.com/reactjs/rfcs/pull/96
Custom Host Nodes are an alternative to the useMutationEffect() API that was originally part of the hooks RFC but got removed later on.
https://github.com/reactjs/rfcs/pull/96
GitHub
Custom Host Node RFC by sebmarkbage · Pull Request #96 · reactjs/rfcs
This is just an idea and not likely to land any time soon.
Summary
This is an alternative idea to useMutationEffect that was originally part of the hooks RFC but since removed.
Basic example
import...
Summary
This is an alternative idea to useMutationEffect that was originally part of the hooks RFC but since removed.
Basic example
import...
💬 Discussion: Provide Ways to Bail out Inside Hooks
Some use cases require function components with hooks to bail out early. The discussion gives insights into when this is needed. Make sure to check out Sebastian’s latest response on this topic.
https://github.com/facebook/react/issues/14110
Some use cases require function components with hooks to bail out early. The discussion gives insights into when this is needed. Make sure to check out Sebastian’s latest response on this topic.
https://github.com/facebook/react/issues/14110
GitHub
Provide more ways to bail out inside Hooks · Issue #14110 · facebook/react
There's a few separate issues but I wanted to file an issue to track them in general: useState doesn't offer a way to bail out of rendering once an update is being processed. This gets a bi...
📌 Mention Hooks As Accepted on the Website
The React Hooks RFC has recently been merged. Thanks to Jamie (jamiebuilds), the website is now updated to reflect this as well.
https://github.com/reactjs/reactjs.org/pull/1485
The React Hooks RFC has recently been merged. Thanks to Jamie (jamiebuilds), the website is now updated to reflect this as well.
https://github.com/reactjs/reactjs.org/pull/1485
🔎 Add <Suspense> and lazy() to react-is
Pleun Vanderbauwhede (pleunv) added support for <Suspense> and lazy() to react-is. This package is used to test for particular React element types.
https://github.com/facebook/react/pull/14423
Pleun Vanderbauwhede (pleunv) added support for <Suspense> and lazy() to react-is. This package is used to test for particular React element types.
https://github.com/facebook/react/pull/14423
GitHub
Add support for Suspense & lazy() to the react-is package by pleunv · Pull Request #14423 · facebook/react
The "react-is" package appears to lack checks for React.Suspense & React.lazy(). Since libraries like enzyme depend on this to implement proper support for these element types I figur...
💉 Inject overrideProps() into DevTools
Development builds are now exposing a new function to the DevTools which is required to allow editing props of more component types.
https://github.com/facebook/react/pull/14427
Development builds are now exposing a new function to the DevTools which is required to allow editing props of more component types.
https://github.com/facebook/react/pull/14427
GitHub
Inject overrideProps() fn to DevTools by bvaughn · Pull Request #14427 · facebook/react
This function will enable editing props for function components, host nodes, and special types like memo and forwardRef.
Copying the update logic into React will also enable us to add more complex ...
Copying the update logic into React will also enable us to add more complex ...
🎉 React 16.7 Release
No, This Is Not The One With Hooks, but this release contains non-trivial changes to fix various performance issues. Read the accompanying release blog post for more details.
https://reactjs.org/blog/2018/12/19/react-v-16-7.html
No, This Is Not The One With Hooks, but this release contains non-trivial changes to fix various performance issues. Read the accompanying release blog post for more details.
https://reactjs.org/blog/2018/12/19/react-v-16-7.html
📋 Memoize Promise Listeners
Previously, React attached new listeners whenever a promise was thrown. This was causing special headaches in non-concurrent mode, where React re-renders immediately after a promise is thrown, causing exponential growth of promise listeners.
https://github.com/facebook/react/pull/14429
Previously, React attached new listeners whenever a promise was thrown. This was causing special headaches in non-concurrent mode, where React re-renders immediately after a promise is thrown, causing exponential growth of promise listeners.
https://github.com/facebook/react/pull/14429
🛠 DevTools: Support Editable Props for More Component Types
In the upcoming DevTools release, you’ll be able to edit the props of more component types including function components, host elements, and special types like context providers, memo, and forwardRef. Check out the pre-release build.
https://github.com/facebook/react-devtools/pull/1249
In the upcoming DevTools release, you’ll be able to edit the props of more component types including function components, host elements, and special types like context providers, memo, and forwardRef. Check out the pre-release build.
https://github.com/facebook/react-devtools/pull/1249
📌 WIP: Support Hooks in DevTools
Support for Hooks in DevTools allows you to inspect useState state values, useCallback functions, and even deeply nested custom hooks.
While the core team is getting hooks ready for a stable release, this work in progress pull request gives an early glimpse of the new DevTools integration.
https://github.com/facebook/react-devtools/pull/1272
Support for Hooks in DevTools allows you to inspect useState state values, useCallback functions, and even deeply nested custom hooks.
While the core team is getting hooks ready for a stable release, this work in progress pull request gives an early glimpse of the new DevTools integration.
https://github.com/facebook/react-devtools/pull/1272
➡️ Rename
The hook to customize the instance value that is exposed to parent components when using
https://github.com/facebook/react/pull/14565
useImperativeMethods to useImperativeHandleThe hook to customize the instance value that is exposed to parent components when using
ref is now called useImperativeHandle.https://github.com/facebook/react/pull/14565
👀 DevTools: Better Display for String Contexts
Context values that hold a primitive data type are now properly formatted in DevTools.
https://github.com/facebook/react-devtools/pull/1256
Context values that hold a primitive data type are now properly formatted in DevTools.
https://github.com/facebook/react-devtools/pull/1256
🛠 Separate Current Owner and Dispatcher
These two private APIs give deep access to React internals and a few external libraries depend on them. If your library does, check out the pull request for a migration strategy.
https://github.com/facebook/react/pull/14548
These two private APIs give deep access to React internals and a few external libraries depend on them. If your library does, check out the pull request for a migration strategy.
https://github.com/facebook/react/pull/14548
🌀 Release 16.8.0-alpha.0
If you’ve played around with hooks before using the alpha release, make sure to upgrade to 16.8.0-alpha.0 and benefit from all bug fixes that were published with 16.7.0.
https://twitter.com/dan_abramov/status/1083139151720001543
If you’ve played around with hooks before using the alpha release, make sure to upgrade to 16.8.0-alpha.0 and benefit from all bug fixes that were published with 16.7.0.
https://twitter.com/dan_abramov/status/1083139151720001543
🛑 Allow
Bailing out from state changes was a long requested feature for hooks. With a recent change, returning the same state from a useReducer call will now avoid re-rendering the component.
https://github.com/facebook/react/pull/14569
useReducer to Bail OutBailing out from state changes was a long requested feature for hooks. With a recent change, returning the same state from a useReducer call will now avoid re-rendering the component.
https://github.com/facebook/react/pull/14569
🎉 React DevTools 3.6
A new version of the React DevTools browser plugin is out adding support for hooks and a lot more.
https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi
A new version of the React DevTools browser plugin is out adding support for hooks and a lot more.
https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi