All Projects → mickeyjsx → mickey

mickeyjsx / mickey

Licence: MIT license
🤠 Lightweight front-end framework for creating React and Redux based app painlessly.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to mickey

OverWatchTeams
react+redux+redux-saga+axios
Stars: ✭ 23 (-11.54%)
Mutual labels:  redux-saga, react-router-v4
isomorphic-react-redux-saga-ssr
Isomorphic, React, Redux, Saga, Server Side rendering, Hot Module Reloading, Ducks, Code Splitting
Stars: ✭ 19 (-26.92%)
Mutual labels:  redux-saga, react-router-v4
coconat
🍥 StarterKit Builder for rocket-speed App creation on 🚀 React 17 + 📙 Redux 4 + 🚠 Router 5 + 📪 Webpack 5 + 🎳 Babel 7 + 📜 TypeScript 4 + 🚔 Linters 23 + 🔥 HMR 3
Stars: ✭ 95 (+265.38%)
Mutual labels:  redux-saga, react-router-v4
React Social Network
Simple React Social Network
Stars: ✭ 409 (+1473.08%)
Mutual labels:  redux-saga, react-router-v4
React Native Starter Kit
React Native starter kit, get up and running !
Stars: ✭ 9 (-65.38%)
Mutual labels:  redux-saga, react-router-v4
React Adventure
⛰ React high-ending architecture & patterns ready for use. Made for big and small projects. PWA Ready.
Stars: ✭ 62 (+138.46%)
Mutual labels:  redux-saga, react-router-v4
React Redux Saga Starter
Basic, Opinionated starter kit for React+Redux+Redux Saga with support for SCSS CSS Modules, Storybook, JEST testing, and ESLint
Stars: ✭ 12 (-53.85%)
Mutual labels:  redux-saga, react-router-v4
react-kit
Ready-to-go react App
Stars: ✭ 25 (-3.85%)
Mutual labels:  redux-saga, react-router-v4
next-react-boilerplate
🔥 NextJS with additional tech feature like react-boilerplate. Demo >>
Stars: ✭ 20 (-23.08%)
Mutual labels:  redux-saga
delivery-app-mobile
🍕React Native food delivery app
Stars: ✭ 143 (+450%)
Mutual labels:  redux-saga
laravel-react-boilerplate
Laravel React Boilerplate with Ant Design, Route-Level Code Splitting, Redux, Sanctum Auth
Stars: ✭ 49 (+88.46%)
Mutual labels:  redux-saga
data-flow
frontend data flow explored in React
Stars: ✭ 19 (-26.92%)
Mutual labels:  redux-saga
dva-vue
🌱 Vue and dva-core based
Stars: ✭ 34 (+30.77%)
Mutual labels:  redux-saga
hbb-survey-app
Hatay Municipality Survey Application
Stars: ✭ 18 (-30.77%)
Mutual labels:  redux-saga
redux-knife-manager
The lightweight and flexible library for implementing Redux entities with React.
Stars: ✭ 32 (+23.08%)
Mutual labels:  redux-saga
universal-react-redux-typescript-starter-kit
A minimal starter kit with React, Redux, server side rendering, hot reloading, and Webpack 2. 100% TypeScript.
Stars: ✭ 12 (-53.85%)
Mutual labels:  react-router-v4
cra-flask
Unejected create-react-app ui, flask api with token authentication
Stars: ✭ 20 (-23.08%)
Mutual labels:  react-router-v4
isomorphic-relay-app
Example isomorphic React-Relay-(Modern / Classic)-Router app and helper lib that connects to Artsy's GraphQL service
Stars: ✭ 13 (-50%)
Mutual labels:  react-router-v4
umi-dva-typescript-mock
基于umi + dva + typescript + mock + antd的react框架,内置PWA
Stars: ✭ 17 (-34.62%)
Mutual labels:  redux-saga
nextjs-redux-instagram
🌏 The simple Instagram was written by next.js & redux-saga & recompose
Stars: ✭ 48 (+84.62%)
Mutual labels:  redux-saga

Mickey

mickey.svg

Lightweight front-end framework for creating React and Redux based app painlessly.

Totally base on redux, redux-saga and react-router, very friendly to redux users.

(Inspired by dva)

MIT License

NPM Version Build Status Coverage Status NPM downloads Dependencies Package Quality

查看中文

Features

Quick Start

Use create-react-app to create an app:

$ npm i -g create-react-app
$ create-react-app my-app

Then install mickey from npm:

$ cd my-app
$ npm install mickey --save
$ npm start

Update index.js as follow:

import React from 'react'
import createApp, {connect, injectActions} from 'mickey'

// 1. Initialize
const app = createApp()

// 2. Model
app.model({
  namespace: 'counter',
  state: {
    count: 0,
    loading: false,
  },
  increment: state => ({ ...state, count: state.count + 1 }),
  decrement: state => ({ ...state, count: state.count - 1 }),
  incrementAsync: {
    * effect(payload, { call }, { succeed }) {
      const delay = timeout => new Promise((resolve) => {
        setTimeout(resolve, timeout)
      })
      yield call(delay, 2000)
      yield succeed()
    },
    prepare: state => ({ ...state, loading: true }),
    succeed: state => ({ ...state, count: state.count + 1, loading: false }),
  },
})

// 3. Component
const Comp = (props) => (
  <div>
    <h1>{props.counter.count}</h1>
    <button onClick={() => props.actions.counter.decrement()}>-</button>
    <button onClick={() => props.actions.counter.increment()}>+</button>
    <button onClick={() => props.actions.counter.incrementAsync()}>+ Async</button>
  </div>
)

// 4. Connect state with component and inject `actions`
const App = injectActions(
    connect(state => ({ counter: state.counter })(Comp))
)

// 5. View
app.render(<App />, document.getElementById('root'))

Examples

More

Related

Contributing

Pull requests and stars are highly welcome.

For bugs and feature requests, please create an issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].