/rax

:tophat: A universal React-compatible render engine.

Primary LanguageJavaScriptOtherNOASSERTION

Rax

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.

Quick Start

Install the Rax CLI tools to init project:

npm install rax-cli -g
rax init YourProjectName

Start local server to launch project:

cd YourProjectName
npm run start

Examples

import {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 Renderers

Rax Drivers

Compatible with React Components

Usage with Webpack or Babel makes React-based components work with Rax, without any code changes.

Usage with Webpack

Add an alias for react and react-dom:

{
  // ...
  resolve: {
    alias: {
      'react': 'rax',
      'react-dom': 'rax-dom',
      // Not necessary unless you consume a module using `createClass`
      'create-react-class': "rax/lib/createClass"
    }
  }
  // ...
}

Usage with Babel

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-dom",
        // Not necessary unless you consume a module using `createClass`
        "create-react-class": "rax/lib/createClass"
      }
    }]
  ]
  // ...
}

Developer Tools

  • React Developer Tools: Allow you inspect and modify the state of your Rax components at runtime in Chrome Developer Tools.

React Developer Tools

Redux DevTools extension

Contributing

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.

Development Workflow

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 lint checks the code style.
  • npm test runs the complete test suite.
  • npm test -- --watch runs an interactive test watcher.
  • npm test <pattern> runs tests with matching filenames.
  • npm run build creates lib and dist folder with all the packages.
  • npm start start local server with examples folder.

Core Team


@yuanyan

Core


@imsobear

Development


@yacheng

Components


@boiawang

Babel Loaders & Plugins


@noyobo

Webpack Plugins


Weex Logo

⬆ back to top