0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-23 21:53:55 -05:00
astro/packages/integrations/react
Matthew Phillips 519a1c4e84
JSX refactor (#7924)
* JSX refactor

* Get preact/compat test to pass

* Use include config

* Remove old astro flavored markdown test

* Move babel dep to preact

* Remove errant debugger

* Update lockfile

* Update the multi-framework example

* Update e2e tests

* Fix nested-in-vue tests

* Add back in astro check

* Update packages/astro/src/core/create-vite.ts

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Update packages/astro/src/core/create-vite.ts

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Update packages/integrations/solid/src/index.ts

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Update packages/integrations/solid/src/index.ts

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Update .changeset/perfect-horses-tell.md

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Move the comment about the include config

* Remove redundant alias config

* Use react's own preamble code

* Use the base for the preamble

* Remove solid redundancy

* Update .changeset/perfect-horses-tell.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update based on review comments

* Oops

---------

Co-authored-by: Fred K. Schott <fkschott@gmail.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-08-11 10:05:02 -04:00
..
src JSX refactor (#7924) 2023-08-11 10:05:02 -04:00
CHANGELOG.md [ci] release (beta) (#7897) 2023-08-08 11:04:14 +01:00
client-v17.js
client.js [ci] format 2023-05-04 14:25:03 +00:00
context.js [ci] format 2023-05-04 14:25:03 +00:00
jsx-runtime.js
package.json JSX refactor (#7924) 2023-08-11 10:05:02 -04:00
README.md Move code block titles into comments to match docs (#7543) 2023-07-01 16:34:49 +02:00
server-v17.js feat: use typescript-eslint@v6's reworked configs (#7425) 2023-07-03 20:59:43 +08:00
server.js feat: use typescript-eslint@v6's reworked configs (#7425) 2023-07-03 20:59:43 +08:00
static-html.js Fix astro-static-slot hydration mismatch error (#7196) 2023-05-26 22:37:33 +08:00
tsconfig.json Remove support for Node 16 (#7780) 2023-08-08 11:01:33 +01:00

@astrojs/react ⚛️

This Astro integration enables server-side rendering and client-side hydration for your React components.

Installation

There are two ways to add integrations to your project. Let's try the most convenient option first!

astro add command

Astro includes a CLI tool for adding first party integrations: astro add. This command will:

  1. (Optionally) Install all necessary dependencies and peer dependencies
  2. (Also optionally) Update your astro.config.* file to apply this integration

To install @astrojs/react, run the following from your project directory and follow the prompts:

# Using NPM
npx astro add react
# Using Yarn
yarn astro add react
# Using PNPM
pnpm astro add react

If you run into any issues, feel free to report them to us on GitHub and try the manual installation steps below.

Install dependencies manually

First, install the @astrojs/react integration like so:

npm install @astrojs/react

Most package managers will install associated peer dependencies as well. Still, if you see a "Cannot find package 'react'" (or similar) warning when you start up Astro, you'll need to install react and react-dom:

npm install react react-dom

Now, apply this integration to your astro.config.* file using the integrations property:

// astro.config.mjs
import { defineConfig } from 'astro/config';
import react from '@astrojs/react';

export default defineConfig({
  // ...
  integrations: [react()],
});

Getting started

To use your first React component in Astro, head to our UI framework documentation. You'll explore:

  • 📦 how framework components are loaded,
  • 💧 client-side hydration options, and
  • 🤝 opportunities to mix and nest frameworks together

Troubleshooting

For help, check out the #support channel on Discord. Our friendly Support Squad members are here to help!

You can also check our Astro Integration Documentation for more on integrations.

Contributing

This package is maintained by Astro's Core team. You're welcome to submit an issue or PR!