рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рди рддреЛ/рдмрдЧ
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдп рдШрдЯрдХреЛрдВ (рд╣реБрдХ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк рджреЗрдЦрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд╣реИ (рдЬрд┐рд╕реЗ TreeNodeComponent
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреЛ рд╡реГрдХреНрд╖-рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдкреЗрдбрд╝ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕реИрдХрдбрд╝реЛрдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрдпреЛрд░рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдлрдВрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рджреЗрдЦреЗ рдЧрдП "рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо" рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИред (~ 160ms рд╕реЗ ~ 60ms рддрдХ)
рдРрдк рдЗрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ 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
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ React.Component
рд╕реЗ shouldComponentUpdate
рд╕рд╛рде рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ред
рдореИрдВ "рдкреНрд░рддрд┐рдкрд╛рджрди" рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП React.useMemo
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
React.memo
рд╕реЗ рдЙрддрдиреЗ рд╣реА рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд┐рддрдиреЗ PureComponent
ред (~ 50-60ms)
рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ: рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдпрд╛ рд╡рд░реНрдЧ рдШрдЯрдХред рд▓рдВрдмреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдпрджрд┐
TreeNodeComponent
рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдорд╣рдВрдЧрд╛ рд╣реИредReact.PureComponent
рдЕрдЧрд░ рдкреНрд░реЙрдкреНрд╕ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ рддреЛ рдЬрд▓реНрджреА рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВредрдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХреЗ рд▓рд┐рдП
React.Component
рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛ рд╕реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╣реБрдЖ? рдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реАReact.PureComponent
(рдпрд╛shouldComponentUpdate
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗрдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЦреИрд░рд╛рдд рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
React.memo
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред