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.



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 "" () []


Versions1.1.0.0,,, 2.0.0, 2.0.0, 2.0.1
Change logNone available
Dependenciesaeson, 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]
AuthorJoel Burget
Home page
Bug tracker
Source repositoryhead: git clone
UploadedTue Jul 21 15:42:37 UTC 2015 by joelb





tell cabal we're using ghcjs


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


Maintainers' corner

For package maintainers and hackage trustees