Installation
Requirements:
rescript@10.1
or laterreact@18.0.0
or later
Add following dependency to your ReScript project (in case you don't have any project yet, check out the installation instructions in the manual):
npm install @rescript/react
Then add the following setting to your existing bsconfig.json
:
JSON{
"jsx": { "version": 4, "mode": "classic" },
"bs-dependencies": ["@rescript/react"]
}
The new jsx transform of ReactJS is available with
mode: "automatic"
.
Note JSX v4 is newly introduced with the idomatic record-based representation of component. If your dependecies are not compatible with v4 yet, then you can use v3 in the same project. Check out the details in Migrate from v3
To test your setup, create a new .res
file in your source directory and add the following code:
RES// src/Test.res
@react.component
let make = () => {
<div> {React.string("Hello World")} </div>
}
Now run npx rescript
and you should see a successful build.
Exposed Modules
After a successful installation, @rescript/react
will make following modules available in your project's global scope:
React
: Bindings to ReactReactDOM
: Bindings to the ReactDOMReactDOMServer
: Bindings to the ReactDOMServerReactEvent
: Bindings to React's synthetic eventsReactDOMStyle
: Bindings to the inline style APIRescriptReactRouter
: A simple, yet fully featured router with minimal memory allocationsRescriptReactErrorBoundary
: A component which handles errors thrown in its child components gracefully