The React Team has finally released React 18 after a long and "suspensful" time.
Developers have long awaited this feature-packed release, which takes Suspense and Concurrent Rendering out of beta, and are now stable for developers to use.
Fortunately, the API has remained relatively stable, except for two main changes:
- the
React.FC
interface has changed, and thechildren
property is no longer part of it; this means that we had to apply a different interface to most components - the hook
useEffect
now runs twice to spot memory leaks
Makerkit is now compatible with the changes above, and you can use it with React 18 for developing your next SaaS.
Introducing React.FCC
As someone who quite liked the React.FC
interface, I was slightly bummed by the decision to change it.
As a result, I introduced a new interface, which reflects the old React.FC
:
declare module 'react' { type FCC<Props = Record<string, unknown>> = React.FC<React.PropsWithChildren<Props>>;}const MyComponentWithChildren: React.FCC<{ body: string;}> = ({ body, children }) => { //...};
It can be read as React Functional Component with Children.
What about Suspense?
While Suspense is now stable, Makerkit hasn't yet adopted it, but it's very high on our list before our final version is out.
Packages Update
Nearly all the packages got a version bump:
- Pino was updated to the recently released version 8
- Stripe as update to version 9.6.0
- Cypress was updated to version 10
- Many, many minor bumps to all the packages
We're working hard towards a stable release. Stay tuned :)