react-haskell: Haskell React bindings

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]


This package provides high level bindings to Facebook's React library, meant for use with GHCJS.

React is a JavaScript library for building user interfaces. React (and React-Haskell) is focused on just UI - it's not a framework.

Currently React-Haskell can render simple stateful components, but not what React calls classes. Put another way, React-Haskell doesn't support lifecycle methods yet.

Here's a simple example which demonstrates basic elements, attributes, state, and handling events.

-- We're creating a class with JSString state
data Example
instance ReactKey Example where
    type ClassState Example = JSString
    type AnimationState Example = ()
    type Signal Example = JSString

-- updating to the new state without animation
transition :: JSString -> JSString -> (JSString, [AnimConfig Example])
transition oldState signal = (signal, [])

view :: JSString -> React Example ()
view str = div_ [ class_ "container" ] $ do
    input_ [ value_ str, onChange (Just . value . target) ]

main :: IO ()
main = withElem "id" $ \elem ->
    render elem =<< createClass view transition "" () []


Versions,,, 2.0.0, 2.0.0, 2.0.1
Change log None available
Dependencies aeson, base (>=4.5 && <5), deepseq, ghcjs-base (>=0.1), ghcjs-dom (>=0.1), ghcjs-prim (>=, lens-family, monads-tf, text, transformers, unordered-containers, void (==0.7) [details]
License MIT
Author Joel Burget
Category Web
Home page
Bug tracker
Source repo head: git clone
Uploaded by joelb at 2015-07-21T15:42:37Z




Automatic Flags

tell cabal we're using ghcjs


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees