Write JSX Tags Anywhere
Install
npm install react-jsx-anywhere
JSX Tags
Coffeescript
@element = jsx"""<Component str="string" num={100} obj={{a:1, b:2}}/>""" // @element = ReactcreateElementComponentstr: "string"num: 123obj: a:1b:2
Typescript
/// // var element:React.ReactElement = (React.createElement(Component, {str: "string", num: 123, obj: {a:1, b:2}}))
IntelliJ IDE Typescript template string support is version 14.1 and higher
Javascript (ECMAScript6)
var element = // var element = (React.createElement(Component, {str: "string", num: 123, obj: {a:1, b:2}}))
Build
Gulp.js
Coffeescript
'use strict' var path = require'path'var gulp = require'gulp'var coffeescript = require'gulp-coffee'var jsx = require'react-jsx-anywhere/gulp' gulptask'build'function return gulpsrc'src/script.coffee' pipejsx pipecoffeescript pipegulpdest'dist/'
Typescript
'use strict' gulp.task'build',
ECMAScript6
'use strict' var gulp = var babel = var jsx = gulp
Webpack
Coffeescript
'use strict' moduleexports = entry: 'src/script.coffee' output: path: 'dist' filename: 'script.js' resolve: root: __dirname extensions: '' '.js' '.coffee' module: loaders: test: /\.coffee$/ loaders: 'coffee-loader' 'react-jsx-anywhere/webpack'
ECMAScript6
'use strict' moduleexports = entry: 'src/script.js' output: path: 'dist' filename: 'script.js' resolve: root: __dirname extensions: '' '.js' module: loaders: test: /\.js$/ loaders: 'babel-loader' 'react-jsx-anywhere/webpack'
Typescript
'use strict' moduleexports = entry: 'src/script.ts' output: path: 'dist' filename: 'script.js' resolve: root: __dirname extensions: '' '.js' '.ts' module: loaders: test: /\.ts$/ loaders: 'ts-loader' 'react-jsx-anywhere/webpack'
Browserify
browserify -t react-jsx-anywhere/browserify src/script.coffee -o dist/script.js
Jsx Parser Function
var fs = var jsxParser = var origin = fs // 'var element:React.ReactElement = jsx(`<Component str="string" num={100} obj={{a:1, b:2}}/>`)'var parsed = fs