react
REACT is for building the front end UI. It's basically a javascript/typescript library/framework, which makes it easier to write interactive html web pages.
The Javascript libraries come with react are so powerful that they can generate the HTML elements in a modular and handy way. Once compiled (built), it outputs the static HTML, Javascript and CSS files. Those static files can be hosted together as a website. The website can support dynamic input and update but those changes are implemented through the javascript. The core javascripts (libraries) are static. So essentially the web site files (HTML, javascript, CSS) are all static, the dynamic behaviour is run from the client side (i.e. in the browser). The web app can call APIs hosted in the back end through HTTP requests for querying or doing business, but again the request is lodged from within the browser through javascript. The business logic is behind the API on the back end.
Some common ways to host react web apps are:
web platform: github, netlify (static files only, no backend business logic)
cloud: AWS S3 for static files + AWS Amplify for serverless backend
Azure App Service
Traditional web servers: Nginx, Apache HTTP Server (static files)
Docker: 'npm run build' command from within docker container, nice and clean
Serverless: AWS Lambda triggered by API gateway
Azure FUnctions
How about the backend business logic?
React simply calls the backend APIs (e.g. Restful, HTTP) using the native javascript's fetch, or Axios. Fetch is for simple http request. Axios has more features such as json parsing.
The backend API is completely independent of the frontend React web app. People can use Node.js for backend, or Python Flask for backend, or any other API or microservice solutions.