@astrojs/preact
π Patch Changes
- #11930
4a44e82Thanks @lukasbachlechner! - Preact components no longer throw an error if a property is null.
- #11930
π Patch Changes
- #11464
2cdb685Thanks @rschristian! - Swap outpreact-ssr-prepassforrenderToStringAsyncfrompreact-render-to-string
- #11464
πΏ Minor Changes
-
#11234
4385bf7Thanks @ematipico! - Adds a new function calledaddServerRendererto the Container API. Use this function to manually store renderers inside the instance of your container.This new function should be preferred when using the Container API in environments like on-demand pages:
import type { APIRoute } from 'astro';import { experimental_AstroContainer } from 'astro/container';import reactRenderer from '@astrojs/react/server.js';import vueRenderer from '@astrojs/vue/server.js';import ReactComponent from '../components/button.jsx';import VueComponent from '../components/button.vue';// MDX runtime is contained inside the Astro coreimport mdxRenderer from 'astro/jsx/server.js';// In case you need to import a custom rendererimport customRenderer from '../renderers/customRenderer.js';export const GET: APIRoute = async (ctx) => {const container = await experimental_AstroContainer.create();container.addServerRenderer({ renderer: reactRenderer });container.addServerRenderer({ renderer: vueRenderer });container.addServerRenderer({ renderer: customRenderer });// You can pass a custom name toocontainer.addServerRenderer({name: 'customRenderer',renderer: customRenderer,});const vueComponent = await container.renderToString(VueComponent);return await container.renderToResponse(Component);};
-
πΏ Minor Changes
-
#11144
803dd80Thanks @ematipico! - The integration now exposes a function calledgetContainerRenderer, that can be used inside the Container APIs to load the relative renderer.import { experimental_AstroContainer as AstroContainer } from 'astro/container';import ReactWrapper from '../src/components/ReactWrapper.astro';import { loadRenderers } from 'astro:container';import { getContainerRenderer } from '@astrojs/react';test('ReactWrapper with react renderer', async () => {const renderers = await loadRenderers([getContainerRenderer()]);const container = await AstroContainer.create({renderers,});const result = await container.renderToString(ReactWrapper);expect(result).toContain('Counter');expect(result).toContain('Count: <!-- -->5');});
-
πΏ Minor Changes
-
#10938
fd508a0Thanks @florian-lefebvre! - Adds adevtoolsoptionYou can enable Preact devtools in development by setting
devtools: truein yourpreact()integration config:import { defineConfig } from 'astro/config';import preact from '@astrojs/preact';export default defineConfig({integrations: [preact({ devtools: true })],});
-
πΏ Minor Changes
-
#10689
683d51a5eecafbbfbfed3910a3f1fbf0b3531b99Thanks @ematipico! - Deprecate support for versions of Node.js older thanv18.17.1for Node.js 18, older thanv20.0.3for Node.js 20, and the complete Node.js v19 release line.This change is in line with Astroβs Node.js support policy.
-
π Patch Changes
- #10585
ad50784adc6f262fc563999e97df3a5dc9087c88Thanks @rschristian! - Fixes (theoretical) edge case in Preact integrationβs JSX aliases
- #10585
π Patch Changes
- #10200
c692d0c66a5062937e47402dc700d41c2a5dfc5cThanks @Princesseuh! - Fixes passing children to server-rendered components causing an error
- #10200
πΏ Minor Changes
-
#9524
0903ef90494e9c8bd0272347a0cdd51eca7f4648Thanks @aleksandrjet! - Allows rendering lazy components.You can now use lazy components with Suspense:
import { lazy, Suspense } from 'preact/compat';const HeavyComponent = lazy(() => import('./HeavyComponent'));const Component = () => {return (<Suspense fallback={<p>Loading...</p>}><HeavyComponent foo="bar" /></Suspense>);};
-
π Patch Changes
-
#9482
72b26daf694b213918f02d0fcbf90ab5b7ebc31fThanks @natemoo-re! - Improves compatability with the Qwik adapter -
#9479
1baf0b0d3cbd0564954c2366a7278794fad6726eThanks @sarah11918! - Updates README
-
β¨ Major Changes
-
#8188
d0679a666Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023. -
#8179
6011d52d3Thanks @matthewp! - Astro 3.0 Release Candidate -
#7924
519a1c4e8Thanks @matthewp! - Newincludeandexcludeconfig optionsThe Preact integration now has new
includeandexcludeconfig options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact andexcludedoes the opposite.
π Patch Changes
- #8264
1f58a7a1bThanks @natemoo-re! - Automatically unmount islands whenastro:unmountis fired
-
π Patch Changes
- #8264
1f58a7a1bThanks @natemoo-re! - Automatically unmount islands whenastro:unmountis fired
- #8264
β¨ Major Changes
π Patch Changes
- #8007
58b121d42Thanks @paperdave! - Support Bun by adjusting how@babel/plugin-transform-react-jsxis imported.
- #8007
β¨ Major Changes
1eae2e3f7Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.