reduxgen

所属分类:自动编程
开发工具:JavaScript
文件大小:39KB
下载次数:0
上传日期:2021-08-12 11:35:46
上 传 者sh-1993
说明:  redux码发生器
(redux code generator)

文件列表:
img (0, 2020-05-21)
img\dir.png (27116, 2020-05-21)
package.json (308, 2020-05-21)
src (0, 2020-05-21)
src\gen.js (2609, 2020-05-21)
src\index.js (2675, 2020-05-21)
src\templates (0, 2020-05-21)
src\templates\actionRedux (0, 2020-05-21)
src\templates\actionRedux\actions.js (159, 2020-05-21)
src\templates\actionRedux\constants.js (434, 2020-05-21)
src\templates\actionRedux\reducer.js (2786, 2020-05-21)
src\templates\actionRedux\state.js (176, 2020-05-21)
src\templates\redux (0, 2020-05-21)
src\templates\redux\actions.js (159, 2020-05-21)
src\templates\redux\constants.js (434, 2020-05-21)
src\templates\redux\reducer.js (2659, 2020-05-21)
src\templates\redux\state.js (206, 2020-05-21)
src\utils (0, 2020-05-21)
src\utils\decamelize.js (672, 2020-05-21)
yarn.lock (13120, 2020-05-21)

# Redux scaffolding code generator ## Prepare - Nodejs - Yarn ## Init ```bash $ git clone git@github.com:cuppar/reduxgen.git $ cd reduxgen $ yarn && yarn link $ chmod +x src/index.js ``` ## Usage ```bash $ cd /where/you/want/to/gen $ reduxgen product ``` It will generate some files as below. ![dir](https://github.com/cuppar/reduxgen/blob/master/img/dir.png) Remind: The generated files and codes are only template files and cannot be run directly. You still need to manually modify some content, such as api path, import path, mock response data, etc. #### reduxgen-product/getProductList/actions.js ```js export { getProductList, dismissGetProductListResponse, dismissGetProductListError, } from './reducer'; ``` #### reduxgen-product/getProductList/constants.js ```js export const GET_PRODUCT_LIST_BEGIN = 'GET_PRODUCT_LIST_BEGIN'; export const GET_PRODUCT_LIST_SUCCESS = 'GET_PRODUCT_LIST_SUCCESS'; export const GET_PRODUCT_LIST_FAILED = 'GET_PRODUCT_LIST_FAILED'; export const GET_PRODUCT_LIST_DISMISS_RESPONSE = 'GET_PRODUCT_LIST_DISMISS_RESPONSE'; export const GET_PRODUCT_LIST_DISMISS_ERROR = 'GET_PRODUCT_LIST_DISMISS_ERROR'; ``` #### reduxgen-product/getProductList/state.js ```js const initialState = { productList: null, getProductListPending: false, getProductListResponse: null, getProductListError: null, }; export default initialState; ``` #### reduxgen-product/getProductList/reducer.js ```js import _ from 'lodash'; import { GET_PRODUCT_LIST_BEGIN, GET_PRODUCT_LIST_SUCCESS, GET_PRODUCT_LIST_FAILED, GET_PRODUCT_LIST_DISMISS_RESPONSE, GET_PRODUCT_LIST_DISMISS_ERROR, } from './constants'; import axiosPlaceholder from 'axiosPlaceholder'; import { mockRequest, enableMockApi } from 'utilsPlaceholder'; import mockGetProductList from 'mockGetProductList'; export const getProductList = ( args = { }, ) => dispatch => { dispatch({ type: GET_PRODUCT_LIST_BEGIN, }); return new Promise((resolve, reject) => { let doRequest = axiosPlaceholder.get(`apiPathPlaceholder`); // test if (enableMockApi) { doRequest = mockRequest(200, mockGetProductList, 100); } // end test doRequest.then( res => { dispatch({ type: GET_PRODUCT_LIST_SUCCESS, response: res, }); resolve(res); }, err => { dispatch({ type: GET_PRODUCT_LIST_FAILED, error: err, }); reject(err); }, ); }); }; export const dismissGetProductListResponse = () => dispatch => dispatch({ type: GET_PRODUCT_LIST_DISMISS_RESPONSE, }); export const dismissGetProductListError = () => dispatch => dispatch({ type: GET_PRODUCT_LIST_DISMISS_ERROR, }); export const reducer = (state, action) => { switch (action.type) { case GET_PRODUCT_LIST_BEGIN: return { ...state, productList: null, getProductListPending: true, getProductListResponse: null, getProductListError: null, }; case GET_PRODUCT_LIST_SUCCESS: return { ...state, productList: _.get(action, `response.data`, null), getProductListPending: false, getProductListResponse: action.response, getProductListError: null, }; case GET_PRODUCT_LIST_FAILED: return { ...state, productList: null, getProductListPending: false, getProductListResponse: null, getProductListError: action.error, }; case GET_PRODUCT_LIST_DISMISS_RESPONSE: return { ...state, getProductListResponse: null, }; case GET_PRODUCT_LIST_DISMISS_ERROR: return { ...state, getProductListError: null, }; default: return state; } }; ```

近期下载者

相关文件


收藏者