React-devtools: "рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЕрдкрдбреЗрдЯ" рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рд░рд┐рдПрдХреНрдЯ рдРрдк рдХреЗ рд▓рд┐рдП рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рджреЗрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react-devtools

рдореИрдВрдиреЗ рдПрдХ рдиреНрдпреВрдирддрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 10 рдЯреВрдбреВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЯреВрдбреВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╣рд░ рд╕реЗрдХреЗрдВрдб рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрдк рдХреЛ Redux Performance FAQ рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджрд░рдЕрд╕рд▓ рдЬрдм рдореИрдВ рдРрдк рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕реВрдЪреА рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рд░ рд╕реЗрдХреЗрдВрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЯреВрдбреВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, React DevTools рд╣рд░ рд╕реЗрдХрдВрдб рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рд╣реИ: https://github.com/nareshbhatia/redux-performanceред рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ React DevTools рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдХреЙрдХрдкрд┐рдЯ рддреНрд░реБрдЯрд┐ рд╣реИ!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @gaearon рдФрд░ @markerikson ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдПрдХрдорд╛рддреНрд░ рдЪрд╛рд▓ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ @gaearon рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) ownProps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ todo $ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реИ (рдкреВрд░реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп)ред рдпрд╣ рдЕрдХреНрд╖рдо рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдерд╛ред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рд░реЗрдкреЛ рддрдп рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╢реИрдХреНрд╖рд┐рдХ рд╣реИред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж!

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░рд┐рдПрдХреНрдЯ рд░реЗрдбрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди connect() рд░реИрдкрд░ рдЕрднреА рднреА рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╕рд▓рд╛рд╣ рдХреА рдЧрд▓рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рд╣реЛрдЧреА (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ): рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ mapStateToProps рдкрд░рд┐рдгрд╛рдо рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдерд▓реЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ ред

рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЕрдВрддрд░ рд╣реИ:

diff --git a/src/components/todo-view.js b/src/components/todo-view.js
index 9559a04..a3c0ac6 100644
--- a/src/components/todo-view.js
+++ b/src/components/todo-view.js
@@ -2,24 +2,12 @@ import React from 'react';
 import { PropTypes } from 'prop-types';

 export class TodoView extends React.Component {
-    static propTypes = {
-        todoId: PropTypes.number.isRequired,
-        todoMap: PropTypes.object.isRequired
-    };
-
-    shouldComponentUpdate(nextProps) {
-        const { todoId, todoMap } = this.props;
-        const { todoMap: nextTodoMap } = nextProps;
-        return todoMap[todoId] !== nextTodoMap[todoId];
-    }
-
     render() {
-        const { todoId, todoMap } = this.props;
-        console.log('-----> TodoView.render():', todoId);
+        const { todo } = this.props;

         return (
             <tr>
-                <td >{todoMap[todoId]}</td>
+                <td >{todo}</td>
             </tr>
         );
     }
diff --git a/src/containers/todo-view-container.js b/src/containers/todo-view-container.js
index b3930f0..ad3e37f 100644
--- a/src/containers/todo-view-container.js
+++ b/src/containers/todo-view-container.js
@@ -1,8 +1,8 @@
 import { connect } from 'react-redux';
 import { TodoView } from '../components/todo-view';

-const mapStateToProps = state => ({
-    todoMap: state.todoMap
+const mapStateToProps = (state, ownProps) => ({
+    todo: state.todoMap[ownProps.todoId]
 });

 export const TodoViewContainer = connect(mapStateToProps)(TodoView);

cc @markerikson рдЕрдЧрд░ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреБрдЫ рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди @nareshbhatia , рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ, рддреЛ Redux рд░реЗрдкреЛ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @gaearon рдФрд░ @markerikson ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдПрдХрдорд╛рддреНрд░ рдЪрд╛рд▓ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ @gaearon рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) ownProps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ todo $ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реИ (рдкреВрд░реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп)ред рдпрд╣ рдЕрдХреНрд╖рдо рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдерд╛ред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рд░реЗрдкреЛ рддрдп рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╢реИрдХреНрд╖рд┐рдХ рд╣реИред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jerikson picture jerikson  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lettywiterock picture lettywiterock  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arghasarkar picture arghasarkar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

txiaocao picture txiaocao  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

levani picture levani  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ