UNPKG

@backand/redux-sdk

Version:
88 lines (64 loc) 3.56 kB
redux-sdk === > Backand SDK for [Redux](http://redux.js.org/). This is the documentation for Back&'s Redux SDK. This SDK enables you to communicate comfortably and quickly with your Backand app. It wraps the [vanilla-sdk](https://github.com/backand/vanilla-sdk) to allow you to work with Back& more easily when working on projects based on Redux. ## Overview This SDK is a Redux wrapper around our [vanilla-sdk](https://github.com/backand/vanilla-sdk). This provides convenient objects and properties for Redux apps working with Back&. You can refer to the [vanilla-sdk](https://github.com/backand/vanilla-sdk)'s readme for a full API reference. Follow the instructions below to install our Redux SDK! ## Installation To install the Redux SDK, use the correct command for your dependency management platform: | Provider | Command | | -------- | ------- | | npm | `$ npm i -S @backand/redux-sdk` | | yarn | `$ yarn add @backand/redux-sdk` | ## Quick start To get started, first use `bkdnredux` to generate the necessary `Types`, `Actions`, and `Reducers` for your Backand objects from the command line: ```bash $ node "./node_modules/.bin/bkndredux" --help $ node "./node_modules/.bin/bkndredux" user obj1 obj2 obj3... -m (thunk/saga) ``` ***Note:*** `user` is a unique object. It has a different `Reducer` and `Type`, and it reveals most of the authentication `Actions` (getUserDetails, signin, signout, etc.). Next, Include the new `Reducers` in [combineReducers()](http://redux.js.org/docs/api/combineReducers.html): ```javascript import { combineReducers } from 'redux' import user from './user/userReducer' import obj1 from './obj1/obj1Reducer' import obj2 from './obj2/obj2Reducer' combineReducers({ user, obj1, obj2 }) ``` For the next step, pick the section that applies to your chosen middleware stack - either [redux-thunk](https://github.com/gaearon/redux-thunk) or [redux-saga](https://github.com/redux-saga/redux-saga) - then follow the corresponding instructions: ### [redux-thunk](https://github.com/gaearon/redux-thunk) Download [redux-thunk](https://github.com/gaearon/redux-thunk) and include it in [createStore()](http://redux.js.org/docs/api/createStore.html): ```javascript import { createStore, applyMiddleware } from 'redux' import thunk from 'redux-thunk' createStore(rootReducer, initialState, applyMiddleware(thunk)) ``` ### [redux-saga](https://github.com/redux-saga/redux-saga) Download [redux-saga](https://github.com/redux-saga/redux-saga) and include it in [createStore()](http://redux.js.org/docs/api/createStore.html): ```javascript import { createStore, applyMiddleware } from 'redux' import createSagaMiddleware from 'redux-saga' import rootSaga from './sagas.js' const sagaMiddleware = createSagaMiddleware() createStore(rootReducer, initialState, applyMiddleware(sagaMiddleware)) sagaMiddleware.run(rootSaga) ``` ### Working with the SDK Once the above is completed, import `Actions` and dispatch them easily! ```javascript import { getUserDetails, signin, useAnonymousAuth, signout } from './user/userActions' store.dispatch(signin(username, password)) store.dispatch(getUserDetails()) ``` ## Examples Below are a few examples of Redux code that uses the Back& SDK: - [codepen example (thunk)](http://codepen.io/backand/pen/VmRajE) - [codepen example (saga)](http://codepen.io/backand/pen/pRgqyx) - [react-native-example](https://github.com/backand/react-native-example/tree/sdk) ## License [MIT](LICENSE)