Skip to content
/ dva Public
forked from dvajs/dva

🚀 Front-end framework based on react, redux, react-redux, react-router and redux-saga, inspired by elm and choo.

Notifications You must be signed in to change notification settings

baiyulong/dva

 
 

Repository files navigation

dva

NPM version

Front-end framework based on react, redux, react-redux, react-router and redux-saga, inspired by elm and choo.


Documents

Getting Started

Install

$ npm install --save dva

Usage Example

Let's create an count app that changes when user click the + or - button.

import React from 'react';
import dva, { connect } from 'dva';
import { Router, Route } from 'dva/router';

// 1. Initialize
const app = dva();

// 2. Model
app.model({
  namespace: 'count',
  state: 0,
  reducers: {
    ['count/add'  ](count) { return count + 1 },
    ['count/minus'](count) { return count - 1 },
  },
});

// 3. View
const App = connect(({ count }) => ({
  count
}))(function(props) {
  return (
    <div>
      <h2>{ props.count }</h2>
      <button key="add" onClick={() => { props.dispatch({type: 'count/add'})}}>+</button>
      <button key="minus" onClick={() => { props.dispatch({type: 'count/minus'})}}>-</button>
    </div>
  );
});

// 4. Router
app.router(({ history }) =>
  <Router history={history}>
    <Route path="/" component={App} />
  </Router>
);

// 5. Start
app.start(document.getElementById('root'));

Examples

FAQ

dva 命名的来历 ?

dva 是守望先锋 (overwatch) 里的英雄。我喜欢使用这个角色,拥有强大的机甲,是个坚实的肉盾,并且她是唯一背景是真实的电竞选手,来自韩国。

License

MIT

About

🚀 Front-end framework based on react, redux, react-redux, react-router and redux-saga, inspired by elm and choo.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 78.9%
  • Makefile 21.1%