0.0.1-alpha.5 • Published 8 years ago
valse v0.0.1-alpha.5
Valse
Valse is a state management based on Redux.
Better than Redux, In Valse just need to write init state and actions.
Valse supports modularized and object-oriented thoughts let you easy to understand and maintain the state of the app.
Install
npm install valse --saveGetting Start
Create Valse module
import Valse from 'valse'; const userModule = Valse.createModule({ root: 'user', state: { id: null, name: '', admin: false, loading: false, }, actions: { setAdmin() { this.$set('admin', true); }, async loadUser() { const id = this.$get('id'); this.$set('loading', true); const { name, admin, } = await window.fetch(`/user/${id}`); this.$assign({ name, admin, loading: false, }); }, }, }); export default userModule;Connect to React Component
Valse integration
react-redux. So can easy connect Valse module to React.import userModule from './user'; import { UserComponent } from './Components'; const UserContainer = userModule.connect(UserComponent); export default UserContainer;start Valse
Have two ways to start Valse.
The simple way is delegate all store state by
Valse.start().import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import Valse from 'valse'; import UserContainer from './Container'; const store = Valse.start(); // you can pass other middlewares like Valse.start([reduxLogger]) ReactDOM.render( <Provider store={store}> <UserContainer /> </Provider> )The advanced way is create store by Redux API
createStoreand manual load Valse's middleware and reducer to the store.NOTICE use this way must create module by
Valse.createModulebeforeValse.buildReducer.import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import { createStore, applyMiddleware, combineReducers } from 'redux'; import { browserHistory } from 'react-router' import { routerReducer, routerMiddleware } from 'react-router-redux'; import Valse from 'valse'; import UserContainer from './Container'; const middleware = applyMiddleware(Valse.middleware, routerMiddleware(browserHistory)); const reducer = combineReducers({ ...Valse.buildReducer('modules'), routing: routerReducer, }); const store = createStore(reducer, middleware); ReactDOM.render( <Provider store={store}> <UserContainer /> </Provider> )
0.0.1-alpha.5
8 years ago
0.0.1-alpha.4
8 years ago
0.0.1-alpha.3
8 years ago
0.0.1-alpha.2
8 years ago
0.0.1-alpha.1
8 years ago
0.0.1-alpha.0
8 years ago
0.0.1-pre
8 years ago