A universal React-compatible render engine.
Community
Rax is a universal JavaScript library with a largely React-compatible API. If you use React, you already know how to use Rax.
⚡ Fast: blazing fast virtual DOM.
🎯 Tiny: 8.0 KB minified + gzipped.
🎨 Universal: works in browsers, Weex, Node.js and could works more container that implement driver specification.
Install the Rax CLI tools to init project:
npm install rax-cli -g
rax init YourProjectNameStart local server to launch project:
cd YourProjectName
npm run startimport {createElement, Component, render} from 'rax';
import Text from 'rax-text';
class Hello extends Component {
render() {
return [
<Text style={styles.title}>Hello Rax</Text>,
<Text style={styles.title}>Hello {this.props.name}</Text>,
];
}
}
const styles = {
title: {
color: '#ff4400',
fontSize: 48,
fontWeight: 'bold',
}
};
render(<Hello name="world" />);More examples take a look at the examples folder:
- 🚥 rax-test-renderer: Rax renderer for snapshot testing.
- 💻 rax-server-renderer: Rax renderer for server-side render.
- 🌏 driver-browser: A driver for webkit browser.
- 🚅 driver-weex: A driver for weex container.
- 🚜 driver-server: A driver for server-side render.
- 🚌 driver-webgl: A driver for 3d render.
Usage with Webpack or Babel makes React-based components work with Rax, without any code changes.
Add an alias for react and react-dom:
{
// ...
resolve: {
alias: {
'react': 'rax',
'react-dom': 'rax',
// Not necessary unless you consume a module using `createClass`
'create-react-class': "rax/lib/createClass"
}
}
// ...
}Install the babel plugin for aliasing: npm install --save-dev babel-plugin-module-resolver
Add an alias for react and react-dom in your .babelrc:
{
// ...
"plugins": [
["module-resolver", {
"root": ["."],
"alias": {
"react": "rax",
"react-dom": "rax",
// Not necessary unless you consume a module using `createClass`
"create-react-class": "rax/lib/createClass"
}
}]
]
// ...
}- React Developer Tools: Allow you inspect and modify the state of your Rax components at runtime in Chrome Developer Tools.
- Redux DevTools extension: Provide power-ups for your Redux development workflow.
- Use the
rax-reduxmodule in your app - Simply replace code follow the Redux DevTools extension usage doc
- Use the
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.
After cloning rax, run npm install to fetch its dependencies.
Run npm run setup link and bootstrap project before development.
Then, you can run several commands:
npm run lintchecks the code style.npm testruns the complete test suite.npm test -- --watchruns an interactive test watcher.npm test <pattern>runs tests with matching filenames.npm run buildcreateslibanddistfolder with all the packages.npm startstart local server withexamplesfolder.
@yuanyan Core |
@imsobear Development |
@yacheng Components |
@boiawang Babel Loaders & Plugins |
@noyobo Webpack Plugins |







