React: рд╕реБрд▓рд╣ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдо рд╡рд░реНрдЧ рдШрдЯрдХ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЬреБрд▓ре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рди рддреЛ/рдмрдЧ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдп рдШрдЯрдХреЛрдВ (рд╣реБрдХ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк рджреЗрдЦрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд╣реИ (рдЬрд┐рд╕реЗ TreeNodeComponent рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреЛ рд╡реГрдХреНрд╖-рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдкреЗрдбрд╝ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕реИрдХрдбрд╝реЛрдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрдпреЛрд░рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдлрдВрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рджреЗрдЦреЗ рдЧрдП "рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо" рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИред (~ 160ms рд╕реЗ ~ 60ms рддрдХ)

"рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо", рдХреНрд░реЛрдо рджреЗрд╡ рдЯреВрд▓реНрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛

Bildschirmfoto 2019-07-11 um 16 24 10

рд╕рдВрджрд░реНрдн:

рдРрдк рдЗрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ TreeNodeComponent рдХреЛ tree-structure ред рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛: https://github.com/thomasnordquist/MQTT-Explorer

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рддреБрд▓рдиреАрдп рдкреНрд░рджрд░реНрд╢рдиред

рд░рд┐рдПрдХреНрдЯ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдУрдПрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ?

рдУрдПрд╕рдПрдХреНрд╕
рдХреНрд░реЛрдорд┐рдпрдо 73 / рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди 5.0.5
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ резрем.рео
рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдФрд░ рд╡реЗрдмрдкреИрдХ

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

рдкреНрдпреЛрд░рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдлрдВрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рджреЗрдЦреЗ рдЧрдП "рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо" рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИред (~ 160ms рд╕реЗ ~ 60ms рддрдХ)

рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдпрджрд┐ TreeNodeComponent рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдорд╣рдВрдЧрд╛ рд╣реИред React.PureComponent рдЕрдЧрд░ рдкреНрд░реЙрдкреНрд╕ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ рддреЛ рдЬрд▓реНрджреА рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВред

рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдп рдШрдЯрдХреЛрдВ (рд╣реБрдХ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк рджреЗрдЦрд╛ред

рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХреЗ рд▓рд┐рдП React.Component рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛ рд╕реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╣реБрдЖ? рдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА React.PureComponent (рдпрд╛ shouldComponentUpdate ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ

рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЦреИрд░рд╛рдд рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк React.memo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдкреНрдпреЛрд░рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдлрдВрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рджреЗрдЦреЗ рдЧрдП "рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо" рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИред (~ 160ms рд╕реЗ ~ 60ms рддрдХ)

рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдпрджрд┐ TreeNodeComponent рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдорд╣рдВрдЧрд╛ рд╣реИред React.PureComponent рдЕрдЧрд░ рдкреНрд░реЙрдкреНрд╕ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ рддреЛ рдЬрд▓реНрджреА рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВред

рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдп рдШрдЯрдХреЛрдВ (рд╣реБрдХ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк рджреЗрдЦрд╛ред

рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХреЗ рд▓рд┐рдП React.Component рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛ рд╕реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╣реБрдЖ? рдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА React.PureComponent (рдпрд╛ shouldComponentUpdate ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ

рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЦреИрд░рд╛рдд рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк React.memo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ React.Component рд╕реЗ shouldComponentUpdate рд╕рд╛рде рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ред

рдореИрдВ "рдкреНрд░рддрд┐рдкрд╛рджрди" рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП React.useMemo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
React.memo рд╕реЗ рдЙрддрдиреЗ рд╣реА рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд┐рддрдиреЗ PureComponent ред (~ 50-60ms)

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ: рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдпрд╛ рд╡рд░реНрдЧ рдШрдЯрдХред рд▓рдВрдмреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

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

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

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

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

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

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

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