redux-user-timing
Version:
User Timing middleware for Redux
73 lines (48 loc) • 2.43 kB
Markdown
> User Timing middleware for profiling redux application
Measuring performance is crucial for optimizing the application. Using with [User Timing API](https://www.html5rocks.com/en/tutorials/webperformance/usertiming/), You can inspect performance about each dispatched redux action. For more details, check out [Carl Vitullo's Blog: Performance Profiling a Redux App](https://medium.com/@vcarl/performance-profiling-a-redux-app-c85e67bf84ae).
- [Performance Analysis in Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference)

```shell
$ npm i redux-user-timing
```
Alternatively, using yarn:
```shell
$ yarn add redux-user-timing
```
Then enable redux-user-timing with `applyMiddleware()`
```js
import { createStore, applyMiddleware } from 'redux';
import userTiming from 'redux-user-timing';
import rootReducer from './reducers';
const store = createStore(rootReducer, applyMiddleware(userTiming));
```
Please, use this middleware only for development environment.
- `configureStore.js`
```js
import { createStore, applyMiddleware } from 'redux';
import userTiming from 'redux-user-timing';
import rootReducer from './reducers';
const configureStore = initialState => {
const middlewares = [
/* Some other middlewares */
];
if (process.env.NODE_ENV !== 'production') {
// Recommend to add redux-user-timing as a last middleware.
middlewares.push(userTiming);
}
const store = createStore(
rootReducer,
initialState,
applyMiddleware(...middlewares),
);
return store;
};
export default configureStore;
```
This idea is inspired by clarkbw. and thanks for Carl Vitullo about kind blog explanation.
MIT © [Taehwan Noh](https://github.com/taehwanno)