Preact, as a lightweight alternative to React, is designed to be highly compatible with React, allowing components and libraries to be shared between the two frameworks. This interoperability enables developers to flexibly choose which framework to use in a project or gradually migrate to Preact in existing projects without rewriting all code.
Using Preact Components in React
Given the similarity between Preact’s and React’s APIs, you can directly import and use Preact components in a React project.
Importing Preact Components
// Assuming you have a Preact component named MyPreactComponent
import MyPreactComponent from './MyPreactComponent';
function App() {
return (
<div>
<MyPreactComponent />
</div>
);
}Using React Components in Preact
You can also use React components in a Preact project, but this requires additional configuration due to differences in Preact’s runtime environment and rendering methods.
Using the react-compat Package
Preact provides a preact-compat package to bridge React and Preact.
npm install preact-compatConfiguring react-compat
In your Preact project, import preact-compat and set up the global React environment.
import { compat } from 'preact/compat';
global.React = compat;Importing React Components
You can now import and use React components in Preact as if they were Preact components.
import ReactComponent from 'path/to/react/component';
function App() {
return (
<div>
<ReactComponent />
</div>
);
}Using React Third-Party Libraries in Preact
Many React third-party libraries can be used in Preact projects, provided they don’t rely on React’s private APIs or specific implementation details.
Checking Compatibility
Before using a third-party library, review its documentation and source code to ensure it doesn’t use React’s private APIs or features incompatible with Preact.
Using the react-compat Package
If a library relies on React features like createRef, forwardRef, or useRef, use preact-compat to provide these functionalities.
import { createRef } from 'preact/compat';
const myRef = createRef();Considerations
- Performance Differences: While Preact strives for React compatibility, subtle implementation differences may lead to minor performance variations.
- API Differences: Preact and React APIs differ slightly in areas like event handler signatures.
- Community and Ecosystem: React has a larger community and richer ecosystem, making it easier to find resources and support tailored to React.



