mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
We've been shipping unprefixed experimental APIs (like `createRoot` and `useTransition`) to the Experimental release channel, with the rationale that because these APIs do not appear in any stable release, we're free to change or remove them later without breaking any downstream projects. What we didn't consider is that downstream projects might be tempted to use feature detection: ```js const useTransition = React.useTransition || fallbackUseTransition; ``` This pattern assumes that the version of `useTransition` that exists in the Experimental channel today has the same API contract as the final `useTransition` API that we'll eventually ship to stable. To discourage feature detection, I've added an `unstable_` prefix to all of our unstable APIs. The Facebook builds still have the unprefixed APIs, though. We will continue to support those; if we make any breaking changes, we'll migrate the internal callers like we usually do. To make testing easier, I added the `unstable_`-prefixed APIs to the www builds, too. That way our tests can always use the prefixed ones without gating on the release channel.
33 lines
925 B
JavaScript
33 lines
925 B
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
export {
|
|
createPortal,
|
|
unstable_batchedUpdates,
|
|
flushSync,
|
|
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
|
version,
|
|
// Disabled behind disableLegacyReactDOMAPIs
|
|
findDOMNode,
|
|
hydrate,
|
|
render,
|
|
unmountComponentAtNode,
|
|
// exposeConcurrentModeAPIs
|
|
createRoot as unstable_createRoot,
|
|
createBlockingRoot as unstable_createBlockingRoot,
|
|
unstable_flushControlled,
|
|
unstable_scheduleHydration,
|
|
// Disabled behind disableUnstableRenderSubtreeIntoContainer
|
|
unstable_renderSubtreeIntoContainer,
|
|
// Disabled behind disableUnstableCreatePortal
|
|
// Temporary alias since we already shipped React 16 RC with it.
|
|
// TODO: remove in React 17.
|
|
unstable_createPortal,
|
|
} from './src/client/ReactDOM';
|