source-react-coffee

0.2.2 • Public • Published

This is an attempt to make Facebook's react library more usable from CoffeeScript without escaping into JSX or painfully contorting syntax. Here's what I have so far.

{ReactComponentrenderComponent} = require 'react-coffee'
 
class TodoList extends Component
  render: ->
    @ul ->
      @li text for text in this.props.items
 
class TodoApp extends Component
  getInitialState: ->
    items: []
    text: ''
 
  onChange: (e) =>
    @setState(text: e.target.value)
 
  handleSubmit: (e) =>
    e.preventDefault()
 
    nextItems = @state.items.concat([@state.text])
    nextText = ''
    @setState(items: nextItemstext: nextText)
 
    @refs.nameInput.getDOMNode().focus()
 
  render: ->
    @div ->
      @h3 'TODO'
      @component TodoListitems: @state.items
      @form onSubmit: @handleSubmit->
        @input onChange: @onChangeref: 'nameInput'value: @state.text
        @button "Add ##{@state.items.length + 1}"
 
component = new TodoApp()
renderComponent(componentdocument.getElementById('app'))

/source-react-coffee/

    Package Sidebar

    Install

    npm i source-react-coffee

    Weekly Downloads

    3

    Version

    0.2.2

    License

    none

    Last publish

    Collaborators

    • tomashanacek
    • marekhrabe