Skip to content

andreypopp/jsxx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsxx

JSX eXperimental. It adds few features to JSX language used in React.

Scope-aware React.DOM fallback

HTML DOM components are prefixed with React.DOM. only if there is no binding defined with the same name in the current scope.

This means that while <div /> compiles to React.DOM.div(null), var div = ...; <div /> would compile to var div = ...; div(null).

Namespaces supports

So <module:component /> compiles to module.component(null).

<template> element

jsxx handles <template> element by compiling it to a function which accepts two arguments and returns an array of element children. So the following snippet:

<template>
  Hello, {name}
</template>

is compiled into

function(props, state) {
  return ['Hello, ', name]
}

Installation and usage

Install from npm:

% npm install jsxx

Use from command line:

% jsxx ./main.jsx > main.js

or with browserify:

% browserify -t jsxx/transform ./index.js > ./bundle.js