Skip to content
React Bindings for PureScript
PureScript JavaScript HTML
Find file
New pull request
Latest commit 12f9412 @paf31 paf31 Merge pull request #52 from purescript-contrib/simpler
Simpler types
Failed to load latest commit information.
docs Simpler types
example Remove use of __current
src Simpler types
test Simpler types
.gitignore Add JS modules.
README.md Renaming types and functions to align with React
bower.json Pursuit

README.md

purescript-react

Maintainer: paf31 React: 0.13.3

Low-level React Bindings for PureScript.

For a more high-level set of bindings, you might like to look at purescript-thermite.

Building

The library and example can be built with Pulp as follows:

pulp dep update
pulp build

pulp test -r cat > example/index.js
open example/index.html

Example

module Main where

import Prelude

import Control.Monad.Eff

import Data.Maybe.Unsafe (fromJust)
import Data.Nullable (toMaybe)

import DOM (DOM())
import DOM.HTML (window)
import DOM.HTML.Document (body)
import DOM.HTML.Types (htmlElementToElement)
import DOM.HTML.Window (document)

import DOM.Node.Types (Element())

import React

import qualified React.DOM as D
import qualified React.DOM.Props as P

incrementCounter ctx e = do
  val <- readState ctx
  writeState ctx (val + 1)

counter = createClass $ spec 0 \ctx -> do
  val <- readState ctx
  return $ D.p [ P.className "Counter"
               , P.onClick (incrementCounter ctx)
               ]
               [ D.text (show val)
               , D.text " Click me to increment!"
               ]

main = container >>= render ui
  where
  ui :: ReactElement
  ui = D.div [] [ createFactory counter {} ]

  container :: forall eff. Eff (dom :: DOM | eff) Element
  container = do
    win <- window
    doc <- document win
    elm <- fromJust <$> toMaybe <$> body doc
    return $ htmlElementToElement elm
Something went wrong with that request. Please try again.