All Projects → ml-in-barcelona → jsoo-react

ml-in-barcelona / jsoo-react

Licence: MIT license
js_of_ocaml bindings for ReactJS. Based on ReasonReact.

Programming Languages

ocaml
1615 projects
Standard ML
205 projects
reason
219 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to jsoo-react

awesome-ppx-reasonml
curated list of reasonml PPX rewriter
Stars: ✭ 28 (-77.78%)
Mutual labels:  ppx, reasonml
hello-ppx-esy
A simple example of a ppx with Reason and esy
Stars: ✭ 38 (-69.84%)
Mutual labels:  ppx, reasonml
react-rules-of-hooks-ppx
This ppx validates the rules of React hooks.
Stars: ✭ 40 (-68.25%)
Mutual labels:  ppx, reasonml
bs-getenv
ReasonML/BuckleScript PPX for embedding env variables
Stars: ✭ 25 (-80.16%)
Mutual labels:  ppx, reasonml
serverless-reasonml
serverless framework plugin for writing functions with Reason
Stars: ✭ 13 (-89.68%)
Mutual labels:  reasonml
reasonml-idea-plugin
ReasonML Language Plugin for IDEA
Stars: ✭ 320 (+153.97%)
Mutual labels:  reasonml
bs-declaredom
Strongly typed declarative markup for the DOM and CSS
Stars: ✭ 66 (-47.62%)
Mutual labels:  reasonml
bs-rsuite-ui-react
Reason bindings for React Suite UI library
Stars: ✭ 26 (-79.37%)
Mutual labels:  reasonml
bs-reason-apollo
ReactApollo bindings for BS
Stars: ✭ 23 (-81.75%)
Mutual labels:  reasonml
nibbledb
a byte-sized time series database
Stars: ✭ 23 (-81.75%)
Mutual labels:  reasonml
solar-weather
React Native Weather App w. Realm, Redux, ReasonReact & Forecast.io
Stars: ✭ 13 (-89.68%)
Mutual labels:  reasonml
reason-react-native-example
ReasonML React Native (Expo) example
Stars: ✭ 14 (-88.89%)
Mutual labels:  reasonml
bs-react-fela
BuckleScript bindings for react-fela
Stars: ✭ 21 (-83.33%)
Mutual labels:  reasonml
hypatia
Convert JavaScript doctrings (in jsdoc AST format) to ijavascript Jupyter Notebooks
Stars: ✭ 12 (-90.48%)
Mutual labels:  reasonml
re-typescript
An opinionated attempt at finally solving typescript interop for ReasonML / OCaml.
Stars: ✭ 68 (-46.03%)
Mutual labels:  reasonml
jsoo todomvc
Todo App implemented in js_of_ocaml
Stars: ✭ 22 (-82.54%)
Mutual labels:  js-of-ocaml
reason-tree-sitter
ReasonML bindings for tree-sitter
Stars: ✭ 22 (-82.54%)
Mutual labels:  reasonml
re-use
⚛️ 🎣 A collection of hooks for ReasonReact
Stars: ✭ 27 (-78.57%)
Mutual labels:  reasonml
streaming
Fast, safe and composable streaming abstractions.
Stars: ✭ 104 (-17.46%)
Mutual labels:  reasonml
bs-remotedata
RemoteData and WebData to use with bs-fetch for BuckleScript
Stars: ✭ 18 (-85.71%)
Mutual labels:  reasonml

jsoo-react

Actions Status

Bindings to React for js_of_ocaml, including JSX ppx.

Adapted from ReasonReact.

jsoo-react allows to use React from OCaml, but it is still at the experimental phase: there is no published version in opam yet, and the library is expected to break backwards compatibility often.

Bug reports and contributions are welcome!

Getting started

New project

For new projects, the best way to start is by using the jsoo-react template.

Existing project

  1. Install the jsoo-react package:

    opam pin add -y jsoo-react https://github.com/ml-in-barcelona/jsoo-react.git
  2. Add jsoo-react library and ppx to dune file of your executable JavaScript app:

    (executables
    (names index)
    (modes js)
    (libraries jsoo-react.lib)
    (preprocess
      (pps jsoo-react.ppx)))
    
  3. Provision React.js library

    jsoo-react uses require to import React and ReactDOM. This means that you will likely need to use a bundler such as Webpack or rollup.js.

    Note that at this moment, jsoo-react is compatible with React 16, so be sure to have the appropriate constraints in your package.json.

Contributing

Take a look at our Contributing Guide.

Acknowledgements

Thanks to the authors and maintainers of ReasonReact, in particular @rickyvetter for his work on the v3 of the JSX ppx.

Thanks to the authors and maintainers of Js_of_ocaml, in particular @hhugo who has been answering many many questions in GitHub threads.

Thanks to the Lexifi team for creating and maintaining gen_js_api.

Thanks to @tmattio for creating Spin and the jsoo-react template 🙌

And thanks to the team behind React.js! What an amazing library :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].