Docs / rescript-react / Introduction

You are currently looking at the v0.12.0 docs, which are still a work in progress. If you miss anything, you may find it in the older v0.11.0 docs here.

ReScript & React

ReScript offers first class bindings for ReactJS and is designed and built by people using ReScript and React in large mission critical React codebases. The bindings are compatible with modern React versions (>= v18.0).

The ReScript philosophy is to compile as closely to idiomatic JS code as possible; in the case of ReactJS, we made no exception, so it's not only easy to transfer all the React knowledge to the ReScript platform, but also straightforward to integrate with existing ReactJS codebases and libraries.

All our documented examples can be compiled in our ReScript Playground as well.

Feature Overview

  • No Babel plugins required (JSX is part of the language!)

  • Comes with all essential React APIs for building production ready apps (useState, useReducer, useEffect, useRef,...)

  • No component class API (all ReScript & React codebases are built on function components & hooks)

  • Strong level of type safety and type inference for component props and state values

  • GenType support for importing / exporting React components in TypeScript codebases

This documentation assumes basic knowledge about ReactJS.

Please note that even though we will cover many basic React concepts, it might still be necessary to have a look at the official ReactJS resources, especially if you are a complete beginner with React.