#Hello I am trying to set up a React component with Astro.
4 messages · Page 1 of 1 (latest)
Hi @wheat summit. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
Sure, I can guide you through the process of setting up a React component with Astro.
Firstly, you need to install the @astrojs/react integration. Astro includes an astro add command to automate the setup of official integrations. You can run the following command from your project directory:
npx astro add react
or if you are using pnpm or yarn, you can use:
pnpm astro add react
or
yarn astro add react
(Source: Astro Documentation (https://docs.astro.build/en/guides/integrations-guide/react#_top))
Once you have installed the integration, you can start using React components in your Astro project. Here is an example of a simple React component:
import * as React from "react";
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0);
const increment = () => {
setCount((prevCount) => prevCount + 1);
};
const decrepement = () => {
setCount((prevCount) => prevCount - 1);
};
return (
<>
<div>
<button onClick={decrepement}> - </button>
<button onClick={increment}> + </button>
</div>
<p>Count is {count}.</p>
</>
);
}
(Source: Github Issue (https://github.com/withastro/astro/issues/2180))
To use this component in Astro, you would import it in the frontmatter section of your .astro file and then use it in your template. For example:
---
import Counter from '../path_to_your_component/Counter.jsx';
---
<Counter client:load />
The client:load directive is used to ensure your component loads immediately from the server. (Source: Astro Documentation (https://docs.astro.build/en/guides/migrate-to-astro/from-create-react-app#render-your-app))