2.1.2 • Published 7 years ago

react-e v2.1.2

Weekly downloads
27
License
MIT
Repository
github
Last release
7 years ago

react-e CircleCI

Concise, readable JSX and react.createElement alternative for non-Babel code bases

$ = require('react-e')

$(Modal,
  $('.container',
    $('span.text', {className: {active: this.state.active}}, 'Some text'),
    $(Button, {className: 'primary'}, 'Close')
  )
)

Is equivalent to:

<Modal>
  <div className="container">
    <span className={'text' + (this.state.active ? ' active' : '')}>Some text</span>
    <Button className='primary'>Close</Button>
  </div>
</Modal>

Installation

npm install --save react-e

Features

React-e is a drop in replacement for react.createElement, but it provides syntactic advantages:

props can be omitted even if you have children:

static classnames can be provided inline using pug syntax:

div is assumed if tag is not provided:

classnames module is built-in:

createElement('div', { className: classnames('foo', {active: this.state.active}) })

<div className={classnames('foo', {active: this.state.active})} ></div>

css modules are bound when using require('react-e/bind')(styles):

$('.foo', { className: {active: this.state.active} })

createElement('div', { className: classnames('foo', {active: this.state.active}) })

<div className={classnames('foo', {active: this.state.active})} ></div>

$(Button, { className: 'foo', {active: this.state.active} })

createElement(Button, { className: classnames('foo', {active: this.state.active}) })

<Button className={classnames('foo', {active: this.state.active})} ></Button>

2.1.2

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago