create-react-template
v0.3.0
Published
Create templates for react and redux.
Downloads
18
Readme
create-react-template
Create various templates.
Install
$ npm install create-react-template
Usage
$ create-react-template
Templates
- Container Component
- Presentational Component
- Store
- Middleware
Container
import { connect } from 'react-redux';
const mapStateToProps = (state) => ({});
const mapDispatchToProps = (dispatch) => ({
updateName: (name) => dispatch(actions.updateName(name))
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(/* component's name */);
Component
Create index.js
, Component.js
, style.css
(optional).
index.js
export default from './Componet';
style.css
.container {
}
Component(stateless)
import React from 'react';
import styles from './style.css';
const Component = (props) => (
<div className={styles.container}>
</div>
);
export default Component;
Component
import React from 'react';
import styles from './style.css';
class Component extends React.Component {
constructor() {
super();
this.state = {};
}
render() {
return (
<div className={styles.container}>
</div>
);
}
}
export default Component;
Middleware
const middleware = (store) => (next) => (action) => {
};
export default middleware;
Store
You can select redux-saga and redux-devtools.
Create configureStore.js
, configureStore.dev.js
, configureStore.prod.js
.
configureStore.js
import configureStoreDev from './configureStore.dev';
import configureStoreProd from './configureStore.prod';
const configureStore = process.env.NODE_ENV !== 'production' ?
configureStoreDev :
configureStoreProd;
export default configureStore;
configureStore.dev.js
import { createStore, applyMiddleware, compose } from 'redux';
import createSaga from 'redux-saga';
import rootReducer from '../reducers';
import mySaga from '../sagas';
const saga = createSaga();
const createEnhancer = () => {
const appliedMiddlewares = applyMiddleware(
saga
);
const reduxDevtoolsExtensionsCompose
= window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
if (reduxDevtoolsExtensionsCompose) {
const devtoolsExtensionCompose = reduxDevtoolsExtensionsCompose({
actionsBlacklist: []
});
return compose(devtoolsExtensionCompose(appliedMiddlewares));
}
else {
return compose(appliedMiddlewares);
}
};
const configureStore = (initialState) => {
const enhancer = createEnhancer();
const store = createStore(rootReducer, initialState, enhancer);
saga.run(mySaga);
return store;
};
export default configureStore;
configureStore.prod.js
import { createStore, applyMiddleware, compose } from 'redux';
import createSaga from 'redux-saga';
import rootReducer from '../reducers';
import mySaga from '../sagas';
const saga = createSaga();
const enhancer = compose(applyMiddleware(
saga
));
const configureStore = (initialState) => {
const store = createStore(rootReducer, initialState, enhancer);
saga.run(mySaga);
return store;
};
export default configureStore;