Code Monkey home page Code Monkey logo

rax's Introduction

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

rax's People

Contributors

yuanyan avatar yacheng avatar boiawang avatar noyobo avatar wssgcg1213 avatar imsobear avatar playing avatar chenjun1011 avatar franklife avatar zhangmengxue avatar alvinhui avatar tinple avatar huxiaoqi567 avatar yujiangshui avatar xcodebuild avatar jasminecjc avatar ayqy avatar kahing7 avatar bluemsn avatar hudidit avatar havefive avatar zunyan avatar leanhunter avatar buaaljy avatar weekeight avatar azu avatar d12mnit avatar zhangyu921 avatar wjwang avatar timoxley avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.