React: [рдЫрд╛рддрд╛] рд╕рд╕реНрдкреЗрдВрд╕ рдЬрд╛рд░реА рдХрд░рдирд╛

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

рдЖрдЗрдП рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд░ рд╕рд╕реНрдкреЗрдВрд╕ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ (рдПрдорд╡реАрдкреА)

рд╕рд╛рд░

  • [x] рдХрд┐рд╕реА рднреА рд░реЗрдВрдбрд░ рдлреЗрдЬ рдлрдВрдХреНрд╢рди (@acdlite) рдХреЗ рднреАрддрд░ рд╕реЗ рд╕рдВрджрд░реНрдн рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ [#13139]
  • [x] рдЯрд╛рдЗрдо-рдЖрдЙрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЫреБрдкрд╛рдПрдВ (@acdlite) [#13120]
  • [ ] рдкреНрд░рддрд┐ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ (@acdlite) [#13293] рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЗрдВрдЬреЗрдХреНрд╢рди
  • [ ] unstable_ рдЙрдкрд╕рд░реНрдЧ рдХреЛ AsyncMode рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ (рд╢рд╛рдпрдж?)
  • [ ] рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдереИрдиреЗрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдФрд░ рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд░реЗрдВрдбрд░ рдЪрд░рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

    • [ ] рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рддрдм рдпреЛрдЧреНрдп рд╣реИ рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ

  • [ ] рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ <div hidden> рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ [#13089]
  • [ ] рдлрд┐рдХреНрд╕реНрдЪрд░ рдореЗрдВ рдХрдИ рд╡рд┐рд╡рд░рдг рд▓рд┐рдВрдХ рдкрд░ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЕрдВрддрддрдГ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреНрдпреЛрдВ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдПрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╕реЗ рдХрдо рджреЗрд░реА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ ( рдЯреНрд╡реАрдЯ рджреЗрдЦреЗрдВ )?

рд╕рд░рд▓ рдХреИрд╢ рдкреНрд░рджрд╛рддрд╛

  • [ ] рдХреИрд╢реЗ рдЕрдорд╛рдиреНрдпрдХрд░рдг (@acdlite) [#13337]
  • [ ] рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди (@acdlite) [#13337]
  • [] рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВ

рдХреЛрдб рд╡рд┐рднрд╛рдЬрди

  • [x] рдПрдХ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рд╡рд╛рджрд╛
  • [x] (рд╢рд╛рдпрдж) рдУрдкрди рд╕реЛрд░реНрд╕ lazyLoadComponent ?

рдЯреЗрд╕реНрдЯ рд░реЗрдВрдбрд░рд░

  • [ ] flushAll , yield , рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВ

    • рд╕рдВрднрд╛рд╡рд┐рдд рдпреЛрдЬрдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдореБрдЦ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╣реИ, рдПрдХ рд▓рд╛ #13236ред

рдбреЙрдХреНрд╕

  • [ ] рдмреНрд▓реЙрдЧ рднреЗрдЬрд╛
  • [ ] React.Placeholder
  • [ ] рд╕рд░рд▓-рдХреИрд╢-рдкреНрд░рджрд╛рддрд╛
  • [ ] рдЕрдирд╛рдо рдХреЛрдб-рд╡рд┐рднрд╛рдЬрди рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдкрд╛рд▓рди тАЛтАЛрдХрд░реЗрдВ

рд╕реЙрдлреНрдЯ рдПрдХреНрд╕рдкрд╛рдпрд░реА (https://github.com/facebook/react/issues/14248)

  • [ ] рдЗрди-рдкреНрд▓реЗрд╕ рд▓реЛрдбрд┐рдВрдЧ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рдкреВрд░реНрд╡рдЬ рдирд╣реАрдВ рд╣реИрдВ
  • [ ] рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрдирд▓рд╛рдЗрди рд╕реНрдкрд┐рдирд░ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬрд╝ рд╣реИ

рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░

  • [ ] рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреИрд╕реЗ @acdlite рдХреА ZEIT рдЯреЙрдХ
  • [ ] рдЖрдВрд╢рд┐рдХ рдЬрд▓рдпреЛрдЬрди

рд╕рдВрдмрдВрдзрд┐рдд: рдЯрд╛рдЗрдо рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдЕрдореНрдмреНрд░реЗрд▓рд╛ (https://github.com/facebook/react/issues/13306)

React Core Team Umbrella

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

@mschipperheyn

рдпрд╣ рдПрдХ рдмрд╣реБрд╡рд░реНрд╖реАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЬрдм рд╣рдордиреЗ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рдЬрд┐рддрдирд╛ рд╕реЛрдЪрд╛ рдерд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдо рдЗрд╕рдХрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдФрд░ рд╣рдо рд╕реБрд░рдВрдЧ рдХрд╛ рдЕрдВрдд рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд╣реАрдВ рд╣реИ - рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЖрд░рд╛рдо рд╕реЗ рдХрд╣ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реАрдорд┐рдд рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЬ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреА рдПрдХ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:

  • <Suspense> рдХреЗ рд╕рд╛рде рдХреЛрдб рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ lazy ред (рд░рд┐рдПрдХреНрдЯ 16.6 рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛)

    • рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ, рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рд╕рдорд╡рд░реНрддреА рдореЛрдб API, рдЬреИрд╕реЗ createRoot рдФрд░ useTransition ред (рдореЗрдВ рдЙрдкрд▓рдмреНрдз experimental рд╡рд┐рдЬреНрдЮрдкреНрддрд┐)

    • рдлреНрд▓рдХреНрд╕ рдЬреИрд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рд╕рдорд╛рдзрд╛рдиред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @bvaughn , https://github.com/reactjs/rfcs/pull/147)

    • рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рдореЗрдВ рдмрджрд▓рдирд╛ред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @acdlite , https://github.com/facebook/react/pull/18612)

    • рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд▓рдВрдмрд┐рдд рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рджреЗрдВред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @acdlite)

    • рдСрдлрд╕реНрдХреНрд░реАрди рдПрдкреАрдЖрдИ ( рдкреНрд░рдЧрддрд┐ @lunaruan)

    • рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЫреБрдкрд╛рдиреЗ/рджрд┐рдЦрд╛рдиреЗ рдкрд░ рдЖрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡

    • рдСрдлрд╝рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЫреБрдкрд╛рдиреЗ/рджрд┐рдЦрд╛рдиреЗ рдкрд░ рдЖрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡

    • рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдкреЛрд░реНрдЯрд▓ рдмрдЪреНрдЪреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдФрд░ рдЫрд┐рдкрд╛рдПрдВ

    • рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣реЗ рдорд╛рдирдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдкреНрд░рдореБрдЦ рдЬреНрдЮрд╛рдд рдмрдЧ рдареАрдХ рдХрд░реЗрдВ ( рдкреНрд░рдЧрддрд┐ @gaearon рдФрд░ @acdlite рдореЗрдВ)

    • рдШрдЯрдирд╛ рд╢рдмреНрджрд╛рд░реНрде рдмрджрд▓реЗрдВред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @sebmarkbage @trueadm)

    • рдЕрдзрд┐рдХ рдХреНрд░рдорд┐рдХ рдЕрдкрдирд╛рдиреЗ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рдЬрдбрд╝реЛрдВ рдХреЛ рд╕реМрдВрдкреЗрдВ ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ , @trueadm)

    • рдХреИрдкреНрдЪрд░ рдЪрд░рдг рдореЗрдВ рдЕрд╕рддрдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлреНрд▓рд╢ рдХрд░реЗрдВред

    • рдЕрдирд┐рд╡рд╛рд░реНрдп рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП event рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

    • рдЕрдиреНрдп рдПрдкреАрдЖрдИ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВред ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

  • рдбреЗрдЯрд╛ рдлрд╝реЗрдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕

    • рдПрдХ рдШрдЯрдХ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдорд░реНрдерди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА

    • рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рддреБрд░рдВрдд рд╕рд╕реНрдкреЗрдВрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдлрд╝реНрд▓рд╢ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз )

    • GraphQL рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди (рд░рд┐рд▓реЗ рд╣реБрдХ, рд╢рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ )ред

    • рдЧреИрд░-рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди ( рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ @sebmarkbage рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ )ред

    • рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрдбрд▓рд░ рдПрдХреАрдХрд░рдгред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ )

    • рд╕рдВрджрд░реНрдн рд╕рд╣рд┐рдд, рдмреНрд▓реЙрдХ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВред

    • рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╢рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдиред ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░рд╛рдЙрдЯрд░ рдПрдХреАрдХрд░рдгред

рдпрд╣ рд▓рдЧрднрдЧ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ "рдпрд╣ рдлреЗрд╕рдмреБрдХ рдкрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ"ред

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ tbh рдпрд╣ рдкрдарди рдереЛрдбрд╝рд╛ рдордиреЛрдмрд▓ рдЧрд┐рд░рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред :-) рд╣рдо рдкрд┐рдЫрд▓реЗ рд╕рднреА рдорд╣реАрдиреЛрдВ рд╕реЗ рдЗрд╕ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХрдИ рддрдХрдиреАрдХреА рдкрд╣рд▓реВ рдпрд╛ рддреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИрдВред рд╢реЗрд╖ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рджреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:

  • рд╢реБрд░реБрдЖрддреА рдбрд┐рдЬрд╝рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд╛рдИ рдЧрдИ рдЦрд╛рдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╕реАрдореЗрдВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрднреА рдЬреЛ рдХреБрдЫ рднреА рд╣реИ, рдЙрд╕реЗ рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреЗрд╡рд▓ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

  • рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдЕрдиреБрдХреВрд▓рддрд╛ рдФрд░ рдЕрдЪреНрдЫреА рдЪреВрдХред рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдЬ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рдореМрдЬреВрджрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдХрд╛рдо рдХрд╛ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреНрд▓рдХреНрд╕-рдЬреИрд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ useMutableSource рдорд╛рдзреНрдпрдо рд╕реЗ, рдмреЗрд╣рддрд░ рдШрдЯрдирд╛ рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдЪреБрдирдирд╛, рдПрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХреИрд╢рд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдирд╛) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХреА рдЧрдИ рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣ рдПрдХ рд▓рдВрдмреА рдкреВрдВрдЫ рд╣реИред

"рдХреНрдпрд╛ рдЖрдк рдЖрдЬ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ... рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдЖрдк рдЖрдЬ рдЗрд╕ рд╕рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХрд░ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рд░рд┐рд▓реЗ рд╣реБрдХ рдФрд░ рд╕рдорд╡рд░реНрддреА рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпреЛрдЬрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЙрд╕ рдмрд╛рд░ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдорд╛рдиреЗрдВрдЧреЗред рдмреЗрд╢рдХ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдмрдЧ рдпрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ , рддреЛ рдЖрдк @experimental рд░рд┐рд▓реАрдЬ рдХрд╛ рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ "рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреЗрд╕рдмреБрдХ рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдордиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдЪрд▓рддреА рдЯреНрд░реЗрди рдХреЗ рдКрдкрд░ рдордВрдерди рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд╣рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЬреЛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдареЛрд╕ рд╣реИред рдЗрд╕ рднрд╛рд░реА рдбреЙрдЧрдлреВрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, рдЫрд╣ рдорд╣реАрдиреЗ рдореЗрдВ рд╣рдордиреЗ рдЬреЛ рдЦрд╛рдорд┐рдпрд╛рдВ рдЦреЛрдЬреАрдВ, рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рд▓рдЧреЗрдВрдЧреЗред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рд╣реИред

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

рдмреЗрдирдХрд╛рдм unstable_AsyncMode (рд╢рд╛рдпрдж?)

рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реИ ?

рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ unstable_ рд╣рдЯрд╛ рджреЗрдВ

рдореИрдВ рдЕрдирд╛рдо рдХреЛрдб-рд╡рд┐рднрд╛рдЬрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕реНрд░реЛрдд рдХреЛ

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ [рдЫрд╛рддрд╛]?ЁЯдФтШВя╕П

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рдпрд╣ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ/рдкреИрдХреЗрдЬреЛрдВ/рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред

@ рдШреЛрд▓рд┐рдпрд░ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдЕрд░реЗ @acdlite , рдмрд╕ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддреИрдпрд╛рд░реА рдХреИрд╕реЗ рдХрд░реЗрдВред рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдХреА рдорд╛рдВрдЧ/рдЙрдореНрдореАрдж рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛:

рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд░рд┐рдПрдХреНрдЯ 16 рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рдВрджрд░реНрдн рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ 16.3 рдХреЗ рд╕рд╛рде рдЙрддрд░рд╛ рд╣реИ?

рдпрд╛ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХреЛ v17 рдкрд░ рдзрдХреЗрд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд░реЛрдбрдореИрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреА рд╕реВрдЪреА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддреИрдпрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ (рдЖрдЬ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ) - рдкреЙрд▓реАрдлрд┐рд▓/рддрдХрдиреАрдХ/рдЖрджрд┐?

(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рдХрд╣реАрдВ рдФрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ)

@JedWatson рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдПрдХ рдФрд░ рдкреНрд░рд╢реНрди рдЬреЛрдбрд╝рдирд╛:

  • рд╣рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╕рдордпрд░реЗрдЦрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ/рдЙрдореНрдореАрдж рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдирдпрд╛ рдкреНрд░реАрд░рд┐рд▓реАрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡/рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛? (AFAIK рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдлрд░рд╡рд░реА рд╕реЗ 16.4.0-alpha.0911da3 рд╣реИред)

рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж! тЭдя╕П

IMO, рд╡реЗ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рд▓реИрдВрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред

рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддреИрдпрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИ (рдЗрд╕рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╢рд╛рдпрдж рд╡рд░реНрддрдорд╛рди рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ/рд╕рдВрдШрд░реНрд╖ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рд░реЗрдбрдХреНрд╕ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд╕рд╛рде рд▓рд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХреЛрдбрдореЛрдб рдпрд╛ рдЖрд╕рд╛рди рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╣реЛрдЧрд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, fb рдореЗрдВ 3W+ рдШрдЯрдХ рд╣реИрдВ)ред рдФрд░ рдпрджрд┐ рдЖрдк @acdlite (ZEIT рдореЗрдВ @gaearon (рдЖрдЗрд╕рд▓реИрдВрдб рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдХреА рдмрд╛рдд рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдЖрдХреНрд░рд╛рдордХ рдирд╣реАрдВ рд╣реИред

рд╡реИрд╕реЗ, рдЖрдк рд░реЗрдкреЛ рдореЗрдВ рдмрд╕ 'рдЕрдореНрдмреНрд░реЗрд▓рд╛' рдХреБрдВрдЬреА рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ #8830 рдФрд░ #12152 рдЬреИрд╕реА рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреАред

AFAIK рдлрд░рд╡рд░реА рд╕реЗ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ 16.4.0-alpha.0911da3 рд╣реИред

рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдпрд╣ рдПрдХ рдЧрд▓рдд рд╕рдВрдЪрд╛рд▓рди рд╣реИ?

рдореИрдВ рдлреЗрд╕рдмреБрдХ рдореЗрдВ рд╕рд╕реНрдкреЗрдВрд╕ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдирдП рдПрдкреАрдЖрдИ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ @acdlite рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдлрд╝реЗрд╕рдмреБрдХ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдФрд░ @JedWatson рдХреЗ рдХреБрдЫ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд░рд┐рдПрдХреНрдЯ 16 рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рдВрджрд░реНрдн рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ 16.3 рдХреЗ рд╕рд╛рде рдЙрддрд░рд╛ рд╣реИ?

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рдПрдХреНрдЯ 16 рдпрд╛ 17 рдХреЗ рд╕рд╛рде рдЖрдПрдЧрд╛ред рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдЗрд╕ рд╕рд╛рд▓ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлреЗрд╕рдмреБрдХ рдкрд░ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдХреЛрдб-рд╡рд╛рд░, рдореБрдЭреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдкрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдлреЗрд╕рдмреБрдХ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рд╕реНрдкреЗрдВрд╕ рдлреАрдЪрд░ рдЕрднреА рднреА рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдЬреИрд╕реЗ async рд░реЗрдВрдбрд░рд┐рдВрдЧ) рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдмреЛрдирд╕ рд╣реЛрдЧрд╛ рдЬреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рд▓рд╛рдПрдЧреАред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддреИрдпрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ (рдЖрдЬ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ) - рдкреЙрд▓реАрдлрд┐рд▓/рддрдХрдиреАрдХ/рдЖрджрд┐?

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рд╡рд╛рд╕рди рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдФрд░ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╣реИред рдЬреИрд╕реЗ @NE-SmallTown рдиреЗ рдХрд╣рд╛, рд╣рдо рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлреЗрд╕рдмреБрдХ рдкрд░ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдирд╛ рднреА рджрд░реНрджрдирд╛рдХ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдХреЛрдбрдмреЗрд╕ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рддрдХ, рд░реЛрд▓ рдЖрдЙрдЯ рд╕реБрдЪрд╛рд░реВ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@ рдЬреЗрдб рд╡рд╛рдЯрд╕рди

рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд░рд┐рдПрдХреНрдЯ 16 рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рдВрджрд░реНрдн рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ 16.3 рдХреЗ рд╕рд╛рде рдЙрддрд░рд╛ рд╣реИ?

рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗред рд╣рдореЗрд╢рд╛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ :) рдЕрдиреНрдпрдерд╛ рдРрд╕рд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЗрд╕реЗ Facebook рдкрд░ рднреЗрдЬ рд╕рдХреЗрдВред

рдпрд╣рд╛рдБ рдореИрдВ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

| | рдЧреНрд░рд╛рд╣рдХ | рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рддрд┐рдкрд╛рджрди |
|----------------------------|----------------------------|-- ------------------------------------------|
| рд╕рд╕реНрдкреЗрдВрд╕ | рд╣рд░ рдЬрдЧрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ* | рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рдорд╛рди рдмрд╛рдзрд╛рдПрдВ |
| рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди | <AsyncMode> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдкреНрдЯ-рдЗрди рдХрд░реЗрдВ | рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рдорд╛рди рдмрд╛рдзрд╛рдПрдВ |

*рд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВ, delayMs рд╣рдореЗрд╢рд╛ 0 ред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рд╕рд╕реНрдкреЗрдВрд╕ рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдореЗрдВ <StrictMode> рд╕рдВрдЧрддрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЦреЛрдЬ рдХреАред рдореБрд░реНрдЧреА-рдЕрдВрдбреЗ рдХреА рджреБрд╡рд┐рдзрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдЦреНрдд рдореЛрдб рдХреЗ рдмрд╛рд╣рд░ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдвреВрдВрдв рд▓рд┐рдпрд╛ред

рддреЛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╕рд╕реНрдкреЗрдВрд╕ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рд╕рдмрдЯреНрд░реА рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рд╡реЗ <AsyncMode> рдореЗрдВ рд▓рдкреЗрдЯрдХрд░ рдСрдкреНрдЯ-рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдП рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╣рд╛рдиреА рдЕрд▓рдЧ рд╣реИ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ async рдЬрд╛рдУред рд╣рдо рдПрдХ рдирдпрд╛ рд░реВрдЯ API ( ReactDOM.render рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди) рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХреЗрд╡рд▓ async рд╣реИред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдЬреАрдм рдЕрд╡рдзрд┐ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдврд╛рдВрдЪреЗ (рд░реЗрдбрдХреНрд╕, рдЕрдкреЛрд▓реЛ, рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ ...) рдПрд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЧреЛрдж рд▓реЗрдиреЗ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЗрддрдиреА рд╕рдореНрдореЛрд╣рдХ рд╣реЛрдВрдЧреА рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдпрд╛ рддреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ async- рд╕рдВрдЧрдд рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рджреЗрд░ рдирд╣реАрдВ рд▓рдЧреЗрдЧреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддреИрдпрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ (рдЖрдЬ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ) - рдкреЙрд▓реАрдлрд┐рд▓/рддрдХрдиреАрдХ/рдЖрджрд┐?

рд╕рдм рдХреБрдЫ <StrictMode> рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБ рд╣реЛрдВрдЧреАред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдЬреАрдм рдЕрд╡рдзрд┐ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдврд╛рдВрдЪреЗ (рд░реЗрдбрдХреНрд╕, рдЕрдкреЛрд▓реЛ, рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ ...) рдПрд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдкреЛрд▓реЛ рдЕрдЬреАрдм рдирд╣реАрдВ рдХрд░рддрд╛ - рд╣рдо рддреИрдпрд╛рд░ рд░рд╣реЗрдВрдЧреЗ! рдореИрдВ

рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо: рджрд┐рд▓: рд╕рднреА рдЪреАрдЬреЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ, рди рдХреЗрд╡рд▓ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рднреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ! рдЗрд╕ @acdlite рдкрд░ рдЖрдкрдХреЗ рд╕рднреА рдЕрджреНрднреБрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЭрдВрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ Redux рдЯреАрдо React-Redux рдХреЗ рд▓рд┐рдП async рдХреЙрдореНрдкреИрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

рдореИрдВрдиреЗ https://github.com/reduxjs/react-redux/issues/950 рдкрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд░реЛрдбрдореИрдк рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рдЯреАрдПрд▓; рдбреЙ:

  • рд░рд┐рдПрдХреНрдЯ-рд░реЗрдбрдХреНрд╕ 5.1 рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ <StrictMode> рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ (рд╡рд░реНрддрдорд╛рди рдкреАрдЖрд░: https://github.com/reduxjs/react-redux/pull/980)
  • 6.0 рдирдП рд╕рдВрджрд░реНрдн рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реЛрдЧрд╛, рд░реЗрдлрд░реА рдЕрдЧреНрд░реЗрд╖рдг рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди, рд▓реЗрдХрд┐рди рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЛ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ (рдпрд╛рдиреА, <Provider> рдФрд░ connect() )ред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдорд╛рд░реНрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред (рдореЗрд░рд╛ рдкреВрд░реНрд╡ рдкреНрд░реВрдл-рдСрдл-рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдкреАрдЖрд░ https://github.com/reactjs/react-redux/pull/898 рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рдВрднрд╡рддрдГ 5.1 рдХрд╛рд░реНрдп рд╕реЗ рд╕реАрдЦреЗ рдЧрдП рдЕрдиреНрдп рдкрд╛рдареЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВрдЧреЗред) рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдирдП рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдПрдХреНрдЯ 16.5 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рд╕рдВрднрд╡рдд: рдЕрднреА рддрдХ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд "рдЬреАрд╡рдирдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрджрд░реНрдн рдкрдврд╝реЗрдВ" рдкреАрдЖрд░ рдЬреЛ рдЕрднреА рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  • рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд░рд┐рдПрдХреНрдЯ-рд░реЗрдбрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВ (рд╣рд╛рдБ, рд╣рд╛рдБ, рдЗрд╕рдореЗрдВ рд╕рдВрднрд╡рддрдГ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕, рд▓реЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)ред

рд╣рдо рдЕрдкрдиреЗ рдбрдмреНрд▓реНрдпреВрдЖрдИрдкреА рдкрд░ рдЕрдзрд┐рдХ рдирдЬрд░ рд░рдЦрдиреЗ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧ рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЪрд░реНрдЪрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд░рд┐рдПрдХреНрдЯ рд╕рд╕реНрдкреЗрдВрд╕ рдФрд░ рдПрд╕рд┐рдВрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд░реЗрдбрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╣рдо рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рднреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдХреБрдЫ рдирдореВрдирд╛ рдРрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рджреЗрдВрдЧреЗ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╕рднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

Async рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд╕рд╕реНрдкреЗрдВрд╕ рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ

@acdlite рд╕рд╕реНрдкреЗрдВрд╕ рдФрд░
рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЙрдиреНрд╣реЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдРрдкреНрд╕ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ: рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдкреАрдЖрдИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рднреА рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ? (рднрд▓реЗ рд╣реА рд╡реЗ рд╕рд╕реНрдкреЗрдВрд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ?)

рдореИрдВ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЧреНрд░рд╣рдг рд░рд╣рд╕реНрдп рдХреЗ рд╕рд╛рде рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди (рд╢рд╛рдпрдж рдХреБрдЫ рдирдП рдПрдкреАрдЖрдИ рдпрд╛ рдЕрдиреНрдп рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг) async рдХреЛрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдФрд░ рдЬреЛ рд▓реЛрдЧ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреЗ рд▓рд┐рдП, рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрдпреЛрдВ рдЙрдиреНрд╣реЗрдВ рдордЬрдмреВрд░? рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡реЗ рдЕрднреА рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдореЗрд░реА рдмрд╛рдд рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ? рдореИрдВ рдЗрд╕рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рдХрд╣реВрдВрдЧрд╛ - рдпрд╣ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рд╕реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдореБрд╢реНрдХрд┐рд▓ рд╣реИ (Redux, рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп, рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд╣рд┐рдд)ред

@gaearon рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВ рдереНрдпреЛрд░реА рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдмреЛрд▓ рд░рд╣рд╛ рдерд╛ред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд╕рд╕реНрдкреЗрдВрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ "рдирдИ" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ "рдирдИ" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ? рд▓реЗрдХрд┐рди: рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ "рдЯреНрд░рд┐рдХрд┐рдпрд░" рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ - рдореИрдВ рдмрд╕ рдЕрдкрдиреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ :)ред

рдПрдХ рддрд░рд╣ рд╕реЗ рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ 10% рдРрдкреНрд╕ рдХреЛ рд╕рд╕реНрдкреЗрдВрд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрди 90% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ "рдирдИ" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╕рд╕реНрдкреЗрдВрд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдЬреБрдЯрд╛рдИ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдореЗрд░реЗ рдбреЗрдореЛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рддреЛ рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП: рдХреЛрдИ "рдирдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдирд╣реАрдВ рд╣реИ, рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдкреИрдЯрд░реНрди рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддреА рд╣реИрдВред рд╡реЗ рдпреЛрдЧрд╛рддреНрдордХ рд╣реИрдВред рдЖрдкрдХреЛ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдЖрдзреБрдирд┐рдХ рдЬреАрд╡рдирдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╡реЗ "рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди" рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓реЛрдбрд┐рдВрдЧ рддрдВрддреНрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд╣рд╕реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд▓реЗрдХрд░ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреБрд░рд╛рдиреЗ рдкреИрдЯрд░реНрди рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЗрдВрдЧреЗред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реА рдмрд╛рдд рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛

@gaearon

рд╕рднреА рдкреБрд░рд╛рдиреЗ рдкреИрдЯрд░реНрди рдХрд╛рдо рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдбреИрдиред рд╣рд╛рдБ, рдореИрдВрдиреЗ рдРрд╕рд╛ рд╣реА рд╕реЛрдЪрд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡реЗ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ, рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗред

рдЕрд░реЗ рдбреИрди (@gaearon), рдореИрдВ рдирд╛рдЗрдЯрдкрд┐рдХрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдКрдкрд░ рдЖрдкрдиреЗ рдХрд╣рд╛:

рд▓реЗрдХрд┐рди рдлрд┐рд░, рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреБрд░рд╛рдиреЗ рдкреИрдЯрд░реНрди рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЗрдВрдЧреЗред

рдЬреЛ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдЧрд╛ рдХрд┐ рдореИрдВ рдирдП рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдореИрдВрдиреЗ "рдкреБрд░рд╛рдиреЗ" рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЖрджрд┐ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣рд╛рдБ , bvaughn рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ getDerivedStateFromProps (рдпрд╛ рдХрдВрдкреЛрдиреЗрдВрдЯWillReceiveProps) рдХреЛ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓рд╛рдирд╛ рд╣реИред

рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирдП рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬреИрд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛? рдЪреВрдВрдХрд┐ AFAIK рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдореЗрдВ WillReceiveProps рдХреЛ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

@ рдЬрд┐рдпреЛрд░реНрдЧреА-рдПрдо: рд╣рд╛рдБ, рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рддрд░реАрдХреЗ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╕реНрдкреЗрдВрд╕ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдСрдкреНрдЯ-рдЗрди рдлреАрдЪрд░ рд╣реИред рдЖрдкрдХреЗ рд╕рднреА рдореМрдЬреВрджрд╛ рд░рд┐рдПрдХреНрдЯ рд░реЗрдВрдбрд░ рдореЗрдердбреНрд╕ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, _if_ рдЖрдк рдЕрдкрдиреЗ рдРрдк рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ <AsyncMode> рдЯреИрдЧ рдЬреЛрдбрд╝рдХрд░ рдСрдкреНрдЯ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, _рдФрд░_ рдЖрдк рдПрд╕рд┐рдВрдХреНрд╕ рдбреЗрдЯрд╛ рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, _рддрдм_ рдЖрдк рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

componentWillReceiveProps рдпрд╛ getDerivedStateFromProps рдмрдЬрд╛рдп @ giorgi-m componentDidUpdate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@markerikson рддреЛ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ bvaughn рдиреЗ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд╣рд╛, рдХрд┐ _getDerivedStateFromProps_ рдХреЛ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдРрд╕рд╛ рд╣реА рд╣реЛ, рдЕрдЧрд░ рдореИрдВрдиреЗ <AsyncMode/> рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ?
(рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд╡реЗ рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдкреЙрдкрдЕрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рд╕рднреА рдХреЛ рдХрд╡рд░ рдХрд░ рд╕рдХреЗ)ред

рдкреБрдирд╢реНрдЪ bvaughn рдиреЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдзрд╛рдЧреЗ рдореЗрдВ рдЗрд╕рдХреА рд╡реИрдХрд▓реНрдкрд┐рдХрддрд╛ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдиреЗ рдореЗрд░рд╛ рд╕рдВрджреЗрд╣ рдмрдврд╝рд╛ рджрд┐рдпрд╛ред

рдХреНрдпрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрдкрдбреЗрдЯ рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП deferSetState() рд░реЗрдВрдбрд░рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ unstable_deferredUpdates() рд╡рд┐рдкрд░реАрдд) рдХреЛ рдХреЛрд░ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореЗрд░реА рд╕рдордЭ рд╕реЗ, async mode рдореЗрдВ рдлрд╛рдЗрдмрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдЕрдкрдбреЗрдЯ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЕрд░реНрде рд╣реИ рдХрд┐ deferSetState() рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, unstable-async/suspense рдбреЗрдореЛ рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрдкрдбреЗрдЯ рдФрд░ рдПрдХ рдПрд╕рд┐рдВрдХ рдЕрдкрдбреЗрдЯ рдХреЛ рдорд┐рд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ async рдореЛрдб ("рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ" рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдЫрд╛рддрд╛ рдХрд╛рдЯрдиреЗ рдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╣реИред

рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рд╡рд╛рджрд╛

рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕:

const PromiseType = new Promise(() => {})
class A extends Component {
    componentDidMount() {}
    componentDidUpdate() {}
    render() {
        return <div><PromiseType></PromiseType></div>
    }
}

рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ componentDidMount рдФрд░ componentDidUpdate рдЬреАрд╡рдирдЪрдХреНрд░ рдХрдм рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

  1. рдЬрдм рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╡рд╛рджреЗ рд╕рд╣рд┐рдд), рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ рд╡рд╛рджрд╛ рдХрднреА рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
  2. рдЬрдм рд╕рднреА рддрддреНрдХрд╛рд▓ рдореЗрдЬрдмрд╛рди рдмрдЪреНрдЪреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ?

@thysultan : componentDidMount рдФрд░ componentDidUpdate рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдпреВрдЖрдИ рдкреЗрдбрд╝ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбреАрдУрдПрдо рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рддреЛ, рд╕рд╕реНрдкреЗрдВрд╕ рдХреА рдореЗрд░реА рд╕рдордЭ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ A рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ PromiseType _did_ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдПрдХ рдФрд░ рд╡рдВрд╢рдЬ рдиреЗ рднреА рдПрдХ рдРрд╕реЗ рд╡рд╛рджреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬреЛ рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рдлрд┐рд░ рдХрднреА рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ cDM рдФрд░ cDU рдХреЛ рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

(рдЕрдЧрд░ рдореЗрд░реА рдзрд╛рд░рдгрд╛рдПрдВ рдпрд╣рд╛рдВ рдЧрд▓рдд рд╣реИрдВ рддреЛ рдХреЛрдИ рдореБрдЭреЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ :))

рд╣рд╛рдБ, componentDidMount рдпрд╛ componentDidUpdate рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░рдг рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рд╡рд░реНрд▓реНрдб рд╡рд╛рдЗрдб рд╡реЗрдм рдкрд░ рдЗрд╕рдХрд╛ рд╡рд░реНрдХрд┐рдВрдЧ рд╡рд░реНрдЬрди рдирд╣реАрдВ рдбрд╛рд▓рд╛ рд╣реИ)ред

рдХреНрдпрд╛ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? :рдбреА

рдпрджрд┐ рдЖрдк рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред fixtures/unstable-async/suspense рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦреЗрдВ

@gaearon рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░рд╛рдЬреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдореЗрдВ рд╣реИ (рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ)?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЙрддреНрддрд░ рдорд┐рд▓рд╛: рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдЖрд░ рдореЗрдВ рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рдбреИрди рдХреА рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдорд┐рд▓реА рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╣ рдЯрд┐рдкреНрдкрдгреА https://www.youtube.com/watch?v=z-6JC0_cOns рдХреА рдУрд░ рднреА

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдПрд╕рдПрд╕рдЖрд░ рдорд╛рдорд▓реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдХрд╛рдо рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрд╕рд┐рдВрдХ рд░рд┐рдПрдХреНрдЯ рдРрдк рдореЗрдВ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ:

  1. рд╕рднреА CPU (ЁЯШУ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдмрд╛рд╣рд░реА рд╡рд┐рдЬреНрдЮрд╛рдкрди рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ
  2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рд╛рдЙрдЯрд░ рдПрдХ рдирдпрд╛ рд░реЗрдВрдбрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ
  3. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХреНрд░реЛрдо/рд╕рдлрд╛рд░реА рдЗрд╕реЗ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдЬреНрдЮрд╛рдкрди 3 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛрддрд╛ рд░рд╣рддрд╛ рд╣реИ
  4. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд╕реНрдкрд┐рдирд░ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП, рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдЙрд╕реА <Placeholder> рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ <Placeholder> рдзреАрдореА async рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛?

@luisherranz рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рддрдВрддреНрд░ рд╣реИрдВ:

  1. рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд╣рд░ рдЕрдкрдбреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рд╕рдордп рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИред рдХреНрд▓рд┐рдХ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдЕрдкрдбреЗрдЯ ~150ms рдХреЗ рднреАрддрд░ рдлрд╝реНрд▓рд╢ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд▓рдВрдмреА рд╕рдордп рд╕реАрдорд╛ (рдЬреИрд╕реЗ рдЧреИрд░-рдЖрд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП) рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЪреБрдирддреЗ рд╣реИрдВред рддреЛ рдЕрдЧрд░ рдХреБрдЫ рдереНрд░реЗрдб рдХреЛ рд╣реЙрдЧрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рд░рд┐рдПрдХреНрдЯ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлреНрд▓рд╢ рдХреЛ рдордЬрдмреВрд░ рдХрд░ рджреЗрдЧрд╛ред

  2. рд░рд┐рдПрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм requestIdleCallback рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЖрдХреНрд░рд╛рдордХ рдирд╣реАрдВ рд╣реИрдВред рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВред

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рджрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

  1. рд░рд┐рдПрдХреНрдЯ рдХреА рд╣рд░ рдЕрдкрдбреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рд╕рдордп рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ

рд╡рд┐рд╕реНрдордпрдХрд╛рд░реАред рдХреНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

  1. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм requestIdleCallback рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЖрдХреНрд░рд╛рдордХ рдирд╣реАрдВ рд╣реИрдВред

рд╣рдордиреЗ рднреА рдпрд╣реА рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдХрднреА-рдХрднреА рдмрд╛рд╣рд░реА рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреАрдбрд╝-рднрд╛рдбрд╝ рд╡рд╛рд▓реЗ рдРрдк рдореЗрдВ рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рдпрд╛ рдпреВрдЯреНрдпреВрдм рд╕реЗ рдПрдореНрдмреЗрдб рд╣реЛрдиреЗ рдореЗрдВ рдХрдИ рд╕реЗрдХрдВрдб рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ requestIdleCallback рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░реЗрдВрдбрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдЙрд╕ рдХреЗ рд▓рд┐рдПред

BTW, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рд╣рдо рджреЛ рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрд▓рд╕реА рд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдПрдХ async рд░реЗрдВрдбрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рд╕рд┐рдВрдХ рд░реЗрдВрдбрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ async рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рднрд╛рд░реА рддрддреНрд╡ рд╕реЗ 1200px рдкрд░ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдЧ рдХреА рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯред
  2. рдкрд╣рд▓рд╛ рдСрдлрд╝рд╕реЗрдЯ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдХреЗ рдПрд╕рд┐рдВрдХреНрд╕ рд░реЗрдВрдбрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
  3. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рдХреЗ 600px рдкрд░ рд╣реИред
  4. рджреВрд╕рд░рд╛ рдСрдлрд╕реЗрдЯ рдЯреНрд░рд┐рдЧрд░: рдпрджрд┐ async рдкреЛрд╕реНрдЯ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ (componentDidMount рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реЗ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд┐рдВрдХ рд░реЗрдВрдбрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╕рдордп рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рджреВрд╕рд░реЗ рдЯреНрд░рд┐рдЧрд░ рд╕реЗ рдлреНрд▓рд╢ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдХреНрдпрд╛ рдЗрд╕ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд┐рдХрд▓рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рдорд╛рд╕реНрдЯрд░ рдкрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдПрдирдкреАрдПрдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдПрд╕рд┐рдВрдХ рдореЛрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рд╣рд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрд▓рд┐рдХ рдЬреИрд╕реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрддреНрдкрд╛рдж рдореЛрдб рдореЗрдВ ~150ms рд╣реИред рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрд╕реНрдерд┐рд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдПрдХ рдЖрд╕реНрдердЧрд┐рдд (рд▓рдВрдмреЗ рд╕рдордп рддрдХ) рдЕрдкрдбреЗрдЯ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рд╕рдордп рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рджреВрд╕рд░реЗ рдЯреНрд░рд┐рдЧрд░ рд╕реЗ рдлреНрд▓рд╢ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдХреНрдпрд╛ рдЗрд╕ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд┐рдХрд▓рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рд╛рдБ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ: https://github.com/oliviertassinari/react-swipeable-views/issues/453#issuecomment -417939459ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рдорд╛рд╕реНрдЯрд░ рдкрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ (async рдореЛрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ npm рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ)

рд╣рд╛рдВ, рд╣рдо <unstable_AsyncMode> , flushSync рдФрд░ unstable_deferredUpdates рд╕рд╛рде npm рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреГрдкрдпрд╛, рдПрдирдкреАрдПрдо рдореЗрдВ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓реНрдлрд╛/рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ! ЁЯЩП

рд╣рд╛рдБ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдХреНрд░рд┐рдпрд╛рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ: oliviertassinari/react-swipeable-views#453 (рдЯрд┐рдкреНрдкрдгреА)ред

рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реАред unstable_deferredUpdates рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ :)

<div hidden> рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЖрдк рд▓реЛрдЧ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@luisherranz рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рд╡реЗ рдЪреАрдЬреЗрдВ _are_ рдЕрд╕реНрдерд┐рд░ рд╣реИрдВред рдмрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╣реБрдд рдЕрдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди - "рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛" - рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдо рдирдП schedule рдореЙрдбреНрдпреВрд▓ ( schedule.unstable_scheduleWork ) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ unstable_deferredUpdates рднреА рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╣рд╛рдВ, рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рдРрдк рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЧрд╣рди рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ :)

рдСрдлрдЯреЙрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
requestIdleCallback рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗрд╡рд▓ 20 рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдореЗрд░реА 6x2 рдХреЛрд░ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдкрд░ рдХреНрд░реЛрдо, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UI рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред
requestAnimationFrame рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдЬреЛ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред

рд╣рдордиреЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ requestIdleCallback рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдЖрдк рд╕рднреА requestIdleCallback рдмрдЬрд╛рдп рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЖрд╣, рдмрд┐рд▓реНрдХреБрд▓ред рдореБрдЭреЗ рдореВрд░реНрдЦред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓рд░ рдореЙрдбреНрдпреВрд▓ requestIdleCallback рдмрдЬрд╛рдп рд╣реБрдб рдХреЗ рддрд╣рдд рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкреНрд░рд╢реНрди рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдореИрдВ

рдЕрд░реЗ рд╡рд╛рд╣, рдорд┐рд▓ рдЧрдпрд╛ред
https://github.com/facebook/react/blob/eeb817785c771362416fd87ea7d2a1a32dde9842/packages/scheduler/src/Scheduler.js#L212 -L222

рдпрд╣ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдирдорд╕реНрддреЗ,

рд╕рд╕реНрдкреЗрдВрд╕ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ рдкрд╣рдЪрд╛рдирд╛ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ Suspend рдШрдЯрдХ ЁЯШ│ЁЯШ▒ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдРрдк рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдирд┐рд▓рдВрдмрд┐рдд" рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ Title рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, Spinner 1000ms рдХреЗ рдмрд╛рдж рдФрд░ UserData ~2000ms рдХреЗ рдмрд╛рдж (рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рдШрдЯрдХ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ "рд▓реЛрдб рдХрд░рдиреЗ" рдореЗрдВ 2000ms рд▓рдЧрддреЗ рд╣реИрдВ)ред
рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ Title рдкрд╣рд▓реЗ 1000ms рдХреЗ рдмрд╛рдж Spinner рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

// longRunningOperation returns a promise that resolves after 2000ms
const UserResource = createResource(longRunningOperation);

function UserData() {
  const userData = UserResource.read(cache, "Lorem Ipsum");
  return <p>User Data: {userData}</p>;
}

function Spinner() {
  return <h1>Fallback Loading Spinner</h1>;
}

function Title() {
  return <h1>Hello World</h1>;
}

function App() {
  return (
    <React.Fragment>
      <Title />
      <Suspense maxDuration={1000} fallback={<Spinner />}>
        <UserData />
      </Suspense>
    </React.Fragment>
  );
}

unstable_createRoot(document.getElementById("mount")).render(<App />);

(рдЖрдк рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд░рд┐рдПрдХреНрдЯ 16.6.0-alpha.8af6728 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ Title рддреБрд░рдВрдд рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛ "рдирд┐рд▓рдВрдмрд┐рдд" рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╛ рдореИрдВрдиреЗ рд╢рд╛рдпрдж рд╕рд╕реНрдкреЗрдВрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╕рдордЭрд╛? (рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ)

рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп @nilsartmann! рдмрдврд╝рд┐рдпрд╛ рд╕рд╡рд╛рд▓!

рдХреНрдпрд╛ рд╢реАрд░реНрд╖рдХ рдХреЛ рддреБрд░рдВрдд рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛ "рдирд┐рд▓рдВрдмрд┐рдд" рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдЖрдкрдХреЛ Title рдХреЛ рдбреАрдУрдПрдо рдореЗрдВ рдлреНрд▓рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ _not Wait_ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Title рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рдЕрдиреНрдп рдХреЛ "рдирд┐рд▓рдВрдмрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд▓рдкреЗрдЯрдХрд░ рдЬреЛ рдЖрдк рддреБрд░рдВрдд <Suspense maxDuration={0}> рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдЕрдиреБрд╕реВрдЪрдХ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ? рдореБрдЭреЗ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдЕрднреА рд╣рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдпрд╣ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

(рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ)

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рд╣реИред рдпрд╣ рдореБрдЭреЗ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@TejasQ рдореЗрд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдлрд╝реЙрд▓рдмреИрдХ рд╕реНрдкрд┐рдирд░ рддреБрд░рдВрдд рдмрди рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ 1000ms рдХреЗ рдмрд╛рдж рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@TejasQ рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди @karlhorky рд╕рд╣реА рд╣реИ: рдЕрдм рд╕реНрдкрд┐рдирд░ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдУрд╣! рдореИрдВрдиреЗ рдпрд╣ рдЦреЛ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рджреЗрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдПрдВред рдореЗрд░реА рдУрд░ рд╕реЗ рдЬрд╝рд░реВрд░ рдХреБрдЫ рди рдХреБрдЫ рднреВрд▓ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред тАНтЩВя╕П

~рдЕрдкрдбреЗрдЯ: рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд░реАрдпрд▓рдЯрд╛рдЗрдо рдореЗрдВ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рддреЛ рд╣рдо рд╕рд╣рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред~

рджреВрд╕рд░рд╛ рдЕрдкрдбреЗрдЯ: @ рдлрд┐рд▓рд┐рдк-рдЬрд╛рд╕реВрд╕ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯрдореНрдкреНрдб рд╣реВрдВред рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ unstable_ рдФрд░ рдЕрд▓реНрдлрд╛ рдлреАрдЪрд░ рд╣реИ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдмрд╕ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░ рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рдЙрдкрдпреЛрдЧреА рдЙрддреНрддрд░ рд╣реЛрдВрдЧреЗ, рдпрд╛ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдФрд░ рднреА рдмреЗрд╣рддрд░/рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЙрдирдХрд╛ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИред рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @nilsartmann!

рдХреНрдпрд╛ рдпрд╣ рд░рд┐рдПрдХреНрдЯ v16.6 рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

import React, {lazy, Suspense} from 'react';
const OtherComponent = lazy(() => import('./OtherComponent'));

function MyComponent() (
  <Suspense fallback={<div>Loading...</div>}>
    <OtherComponent />
  </Suspense>
);

рдХреНрдпрд╛ рдпрд╣ рд░рд┐рдПрдХреНрдЯ v16.6 рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

рдХреЗрд╡рд▓ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ, рдФрд░ рдХреЗрд╡рд▓ рд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВред рд╕рдорд╡рд░реНрддреА рдореЛрдб рдЕрднреА рднреА WIP рд╣реИред

@nilsartmann

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╢реАрд░реНрд╖рдХ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, 1000ms рдХреЗ рдмрд╛рдж рд╕реНрдкрд┐рдирд░ рдФрд░ ~ 2000ms рдХреЗ рдмрд╛рдж UserData (рдЙрд╕ рдШрдЯрдХ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ "рд▓реЛрдб рдХрд░рдиреЗ" рдХреЗ рд░реВрдк рдореЗрдВ 2000ms рд▓рдЧрддреЗ рд╣реИрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реИрдВ рдХрд┐ maxDuration рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдирдпрд╛ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╕рдорд╡рд░реНрддреА рдореЛрдб рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рди рд╣реЛред

рд╣реБрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рдмрдзрд╛рдИред рдореИрдВ рдЯреАрдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ рдПрд╕рд┐рдВрдХ рдирд╛рдордХ рдПрдХ рдШрдЯрдХ рдЬрд╛рд░реА рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдпрд╣ рдкреНрд░реЙрдорд┐рд╕ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ isLoading, startAt рдФрд░ рд░реАрд▓реЛрдб рдФрд░ рдХреИрдВрд╕рд┐рд▓ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ, рд╕рднреА рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ API рдХреЗ рд╕рд╛рде (рдФрд░ рдПрдХ useAsync рд╣реБрдХ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╣реИ)ред

рдЕрдм рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╢рд╛рдпрдж рд░рд┐рдПрдХреНрдЯ рдПрд╕рд┐рдВрдХреНрд╕ рд╕реЗ рд╕рд╕реНрдкреЗрдВрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╕реНрдкреЗрдВрд╕ рдХреА рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдкреЗрд╢ рдХрд░рддреЗ рд╣реБрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╕рд░рд▓ рд░рд┐рдПрдХреНрдЯ рдПрд╕рд┐рдВрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдПрд╕рд┐рдВрдХ рдПрдкреАрдЖрдИ рдЕрдзрд┐рдХ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рд╕рд╕реНрдкреЗрдВрд╕ рдПрдкреАрдЖрдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд░рд┐рдПрдХреНрдЯ Async рдПрдХ рдЕрдзрд┐рдХ рдареЛрд╕ рдПрдкреАрдЖрдИ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдереЛрдбрд╝реЗ рдЫреЛрдЯреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд░рд┐рдПрдХреНрдЯ рдХреИрд╢ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред рд░рд┐рдПрдХреНрдЯ рдПрд╕рд┐рдВрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреИрд╢ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реИрдирд┐рд▓рд╛ рдкреНрд░реЙрдорд┐рд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ред рдЙрд╕рдХреЗ рдКрдкрд░ рдХреИрд╢рд┐рдВрдЧ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред

рдЕрдВрдд рдореЗрдВ рдореИрдВ рдХрд╕реНрдЯрдо рд╣реБрдХ рд╕реЗ рд╕рд╕реНрдкреЗрдВрд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдБред рд╕рд╕реНрдкреЗрдВрд╕ рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдШрдЯрдХреЛрдВ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдПрдХ рд╣реБрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?) рдмрдирд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рд╕реНрдкреЗрдВрд╕ рд╣реБрдХ рд╣реЛрдВрдЧреЗ? рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ?

рдирдорд╕реНрдХрд╛рд░ред рдореИрдВ рд╕рд╕реНрдкреЗрдВрд╕/рдЖрд▓рд╕реА рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЕрдм renderer.create(...)toTree() рдлреЗрдВрдХрддрд╛ рд╣реИ
"toTree () рдЕрднреА рддрдХ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЯреИрдЧ = 13 рдХреЗ рд╕рд╛рде рдиреЛрдбреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ"

рдкреНрд░реЛрдк maxDuration рдореЗрдВ Suspense рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рдВрдХ рдФрд░ рд╕рдорд╡рд░реНрддреА рдореЛрдб рджреЛрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ Concurrent Mode рдореЗрдВ рд╣реА рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

(рдЕрднреА) рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ Concurrent Mode рдХреЛ рдЗрд╕ рдкреЗрдбрд╝ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рдВрдмрд┐рдд рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ - рдпрд╣ рд╕рдордп рдХрд╛рдЯрдиреЗ рдХреА рд╕рдордп рд╕реАрдорд╛ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд┐рдВрдХ рдореЛрдб рдореЗрдВ рдЯрд╛рдЗрдо рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдкреЗрдбрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдЧрд╛ ... рд╕рд┐рдВрдХ рдирд╣реАрдВред

рдореИрдВ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЖ рдЧрдпрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рддрдХ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдХреИрд╢ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдПрдкреАрдЖрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╕рд╕реНрдкреЗрдВрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░, рдпрд╣рд╛рдВ рдореЗрд░реЗ рдЖрд╡реЗрджрди рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рднрдпрд╛рдирдХ рд╣реБрдХ рд╣реИред

function useComponentList(id) {
  const incomingComponents = useSuspenseFetch(
    React.useCallback(() => getComponentAPI().listComponents(id), [id])
  )

  const map = React.useMemo(
    () =>
      Map(
        (incomingComponents || []).map(component => [component.id, component])
      ),
    [incomingComponents]
  )

  return useCacheValue(map)
}

рдпрд╣ рд╣реБрдХ:

  1. рджрд┐рдП рдЧрдП рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рджрд┐рдП рдЧрдП рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
  2. рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЗрдореНрдпреВрдЯреЗрдмрд▓рдЬреЗрдПрд╕ рдореИрдк рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ - рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдСрдкрд░реЗрд╢рди рдХреЛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВред
  3. useCacheValue рдореЗрдВ рд▓рд┐рдкрдЯреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЬреАрдм рд╕рд╛ рд╣реИред

useCacheValue рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

export default function useCacheValue(value) {
  const [state, setState] = React.useState(value)
  React.useEffect(() => {
    setState(value)
  }, [value])

  return [state, setState]
}

рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐ рдпрд╣ рдПрдХ рд╣реБрдХ рд╣реИ рдЬреЛ value рдмрджрд▓рдиреЗ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ (рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕ рд░рд╛рдЬреНрдп рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдкреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЦрд░рд╛рдм рдХреИрд╢ (рдЗрд╕рд▓рд┐рдП рдирд╛рдо) рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреИрдЯрд░реНрди рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ Redux рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЦреЛрдЬ рд╣реБрдИ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдЬрдм рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕ 'рддреИрдпрд╛рд░' рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ, рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╢реНрд░рдорд╕рд╛рдзреНрдп рд╣реИред

рдПрдХ рдмрд╛рд░ Redux рдХреЗ рдЕрдкрдиреЗ рд╣реБрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╢рд╛рдпрдж рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдореЗрдВ рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ Redux рдПрдХ HOC рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдРрд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрдпрд╛ рд╣реИ рдЬрд╡рд╛рдм рд╣реИ :)

рд╕рд╕реНрдкреЗрдВрд╕ рдмрд╛рд╣рд░реА рдХреИрд╢ (рд░рд╛рдЬреНрдп рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реБрдХ рдирд╣реАрдВ ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╣рдо рдРрд╕реЗ рдХреИрд╢ рдХрд╛ рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд░рд┐рд▓реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдХреЛрдИ рднреА рдЕрдиреНрдп рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ рдЕрдкреЛрд▓реЛ) рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрд╢ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдЬреЛ рдХрд┐ рд╕рдВрдЧрдд рд╣реИ, рд╕рдВрднрд╡рддрдГ рдЗрди рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди/рдЕрдорд╛рдиреНрдпрддрд╛ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЙрддреНрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ: рд╕реНрдкрд┐рдирд░реЛрдВ рдХреЛ рдХрдм рджрд┐рдЦрд╛рдирд╛ рд╣реИ, "рдЗрдирд▓рд╛рдЗрди рдЗрдВрдбрд┐рдХреЗрдЯрд░" рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдЬреЛ рдирд┐рд▓рдВрдмрд┐рдд рдкреЗрдбрд╝ рдХреЗ рдмрд╛рд╣рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЛрдбрд┐рдВрдЧ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЯреЙрдк-рдбрд╛рдЙрди рдСрд░реНрдбрд░ рдореЗрдВ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рд╡реЗ рдЖрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡реЗ рд╣реИрдВ рд░реЗрдбреА), рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдпрд╣ рдЖрдВрд╢рд┐рдХ рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрддреНрдпрд╛рджрд┐ред рд╣рдо рдЗрди рдЪреАрдЬреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рдЕрднреА рддрдХ рдХреЛрдИ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢" рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣реЛрдЧрд╛, рддреЛ рдЖрдк рдЙрд╕ рдмреНрд▓реЙрдЧ рд╕реЗ рдЬрд╛рдиреЗрдВрдЧреЗ рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдбреЗрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕ рд▓реЛрдЧреЛрдВ рдХреА рдЖрджрдд рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ Redux рдЬреИрд╕реЗ рдмрд╣реБрдд рд╣реА рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред рдЕрднреА рдХреБрдЫ рднреА рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

@gaearon рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рд╣рдо рдЗрди рдЪреАрдЬреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ", рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдпреЗ рдЪрд░реНрдЪрд╛рдПрдВ рдирд┐рдЬреА рддреМрд░ рдкрд░ рд╣реЛ рд░рд╣реА рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж, @gaearon :)

@ntucker рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЖрдк рдЪрд▓ рд░рд╣реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ https://github.com/facebook/react/pull/14717 , https://github.com/facebook/react/pull/14884 , https://github.com/facebook/react/pull/15061 , https://github.com/facebook/react/pull/15151 , https://github.com/facebook/react/pull/15272 , https://github.com/facebook/react/pull/15358 , https ://github.com/facebook/react/pull/15367 , рдЗрддреНрдпрд╛рджрд┐ред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреАрдЖрд░ рдореЗрдВ рдХреБрдЫ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдмрд╛рд░ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрдо рд╣реИред

рд╣рдо рдЪреБрдиреЗ рд╣реБрдП рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкреЛрд╕реНрдЯ рдХрд░реЗрдВрдЧреЗ рдЬрдм рд╣рдо рдЕрдзрд┐рдХ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╛ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрдХ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рд╣рд░ рдкреНрд░рдпреЛрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╣рд▓реЗ рдкреНрд░рдпреЛрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдФрд░ рднреА рдмреБрд░рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдХреНрд╕рд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдПрдХ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ maxDuration рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА-рдЕрднреА рд╣рдЯрд╛рдпрд╛ рд╣реИред) рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдзреЗ-рдЕрдзреВрд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рддрдм рддрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рдордп рдФрд░ рд╣рдорд╛рд░реЗ рд╕рдордп рджреЛрдиреЛрдВ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рди рд╣реЛ рдЬрд╛рдПред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрддреАрдд рдореЗрдВ рднреА рд░рд┐рдПрдХреНрдЯ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред рдЬрдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рднреА), рддреЛ рд╣рдо рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдзреНрдпрд╛рди рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рд╕рдордЭрд╛рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕ рд▓реЛрдЧреЛрдВ рдХреА рдЖрджрдд рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ Redux рдЬреИрд╕реЗ рдмрд╣реБрдд рд╣реА рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред рдЕрднреА рдХреБрдЫ рднреА рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

@gaearon , рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдкрд╣реЗрд▓реА рдХреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЬрдЧрд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВред рдЖрдк рд╕рднреА рдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рдкрд┐рдЫрд▓реЗ рдирд╡рдВрдмрд░ рдореЗрдВ рдШреЛрд╖рд┐рдд рд░реЛрдбрдореИрдк (https://reactjs.org/blog/2018/11/27/react-16-roadmap.html) рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ "рд╕рдорд╡рд░реНрддреА" рд╕рдВрд╕реНрдХрд░рдг Q2 2019 рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рд╣рдо рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реИрдВ Q3 2019ред рдХреНрдпрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Q3, рдпрд╛ рд╢рд╛рдпрдж Q3, рдЖрджрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рдирд╡реАрдирддрдо рд░реЛрдбрдореИрдк рдЕрдкрдбреЗрдЯ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрд╛: https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#an -update-to-the-roadmap

рд╣рдордиреЗ рдЕрдХреНрдЯреВрдмрд░ рдореЗрдВ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рджрд╛рди рдХреА: https://reactjs.org/docs/concurrent-mode-intro.htmlред рдпрд╣ рд╡рд╣реА рдмрд┐рд▓реНрдб рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред рдЕрднреА рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ (рджреЛрдиреЛрдВ рдПрдкреАрдЖрдИ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдПрдкреАрдЖрдИ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рд▓реЗрдХрд┐рди рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╕реНрдкреЗрдВрд╕ рдореБрдЭреЗ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ

@gaearon рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдирд┐рдЪреНрдЫреБрдХ рд╣реВрдВред рдЖрдк рд▓реЛрдЧ рд░реЛрдбрдореИрдк, рд╕реНрдерд┐рддрд┐, рдкреНрд░рдЧрддрд┐, рд╕рдордп рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдЕрд▓реНрдлрд╛, рдмреАрдЯрд╛, рдЖрд░рд╕реА рдЧреБрдгрд╡рддреНрддрд╛ рд╣реИ? рдпрд╣ рд╢рдмреНрдж "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдореБрдЭреЗ "рдЗрд╕реЗ рдордд рдЫреБрдУ" рдХрд╣рддрд╛ рд╣реИред

рд╣рдо рд╕рднреА рдЗрд╕ рдХреЛрдб рдкрд░ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЛ рдмреИрдВрдХрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдЖрдк рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣реА рдбреВрдмреЗ рд╣реБрдП рд╣реИрдВред рдереЛрдбрд╝реА рд╕реА рд╕реНрдкрд╖реНрдЯрддрд╛, рдПрдХ рдмреНрд▓реЙрдЧ, рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рд▓рдЧрднрдЧ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ "рдпрд╣ рдлреЗрд╕рдмреБрдХ рдкрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ"ред

@mschipperheyn

рдпрд╣ рдПрдХ рдмрд╣реБрд╡рд░реНрд╖реАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЬрдм рд╣рдордиреЗ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рдЬрд┐рддрдирд╛ рд╕реЛрдЪрд╛ рдерд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдо рдЗрд╕рдХрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдФрд░ рд╣рдо рд╕реБрд░рдВрдЧ рдХрд╛ рдЕрдВрдд рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд╣реАрдВ рд╣реИ - рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЖрд░рд╛рдо рд╕реЗ рдХрд╣ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реАрдорд┐рдд рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЬ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреА рдПрдХ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:

  • <Suspense> рдХреЗ рд╕рд╛рде рдХреЛрдб рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ lazy ред (рд░рд┐рдПрдХреНрдЯ 16.6 рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛)

    • рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ, рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рд╕рдорд╡рд░реНрддреА рдореЛрдб API, рдЬреИрд╕реЗ createRoot рдФрд░ useTransition ред (рдореЗрдВ рдЙрдкрд▓рдмреНрдз experimental рд╡рд┐рдЬреНрдЮрдкреНрддрд┐)

    • рдлреНрд▓рдХреНрд╕ рдЬреИрд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рд╕рдорд╛рдзрд╛рдиред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @bvaughn , https://github.com/reactjs/rfcs/pull/147)

    • рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рдореЗрдВ рдмрджрд▓рдирд╛ред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @acdlite , https://github.com/facebook/react/pull/18612)

    • рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд▓рдВрдмрд┐рдд рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рджреЗрдВред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @acdlite)

    • рдСрдлрд╕реНрдХреНрд░реАрди рдПрдкреАрдЖрдИ ( рдкреНрд░рдЧрддрд┐ @lunaruan)

    • рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЫреБрдкрд╛рдиреЗ/рджрд┐рдЦрд╛рдиреЗ рдкрд░ рдЖрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡

    • рдСрдлрд╝рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЫреБрдкрд╛рдиреЗ/рджрд┐рдЦрд╛рдиреЗ рдкрд░ рдЖрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡

    • рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдкреЛрд░реНрдЯрд▓ рдмрдЪреНрдЪреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдФрд░ рдЫрд┐рдкрд╛рдПрдВ

    • рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣реЗ рдорд╛рдирдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдкреНрд░рдореБрдЦ рдЬреНрдЮрд╛рдд рдмрдЧ рдареАрдХ рдХрд░реЗрдВ ( рдкреНрд░рдЧрддрд┐ @gaearon рдФрд░ @acdlite рдореЗрдВ)

    • рдШрдЯрдирд╛ рд╢рдмреНрджрд╛рд░реНрде рдмрджрд▓реЗрдВред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ @sebmarkbage @trueadm)

    • рдЕрдзрд┐рдХ рдХреНрд░рдорд┐рдХ рдЕрдкрдирд╛рдиреЗ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рдЬрдбрд╝реЛрдВ рдХреЛ рд╕реМрдВрдкреЗрдВ ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ , @trueadm)

    • рдХреИрдкреНрдЪрд░ рдЪрд░рдг рдореЗрдВ рдЕрд╕рддрдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлреНрд▓рд╢ рдХрд░реЗрдВред

    • рдЕрдирд┐рд╡рд╛рд░реНрдп рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП event рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

    • рдЕрдиреНрдп рдПрдкреАрдЖрдИ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВред ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

  • рдбреЗрдЯрд╛ рдлрд╝реЗрдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрд╕

    • рдПрдХ рдШрдЯрдХ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдорд░реНрдерди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА

    • рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рддреБрд░рдВрдд рд╕рд╕реНрдкреЗрдВрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдлрд╝реНрд▓рд╢ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз )

    • GraphQL рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди (рд░рд┐рд▓реЗ рд╣реБрдХ, рд╢рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ )ред

    • рдЧреИрд░-рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди ( рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ @sebmarkbage рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ )ред

    • рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрдбрд▓рд░ рдПрдХреАрдХрд░рдгред ( рдкреНрд░рдЧрддрд┐ рдореЗрдВ )

    • рд╕рдВрджрд░реНрдн рд╕рд╣рд┐рдд, рдмреНрд▓реЙрдХ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВред

    • рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╢рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдиред ( рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ )

    • рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░рд╛рдЙрдЯрд░ рдПрдХреАрдХрд░рдгред

рдпрд╣ рд▓рдЧрднрдЧ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ "рдпрд╣ рдлреЗрд╕рдмреБрдХ рдкрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ"ред

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ tbh рдпрд╣ рдкрдарди рдереЛрдбрд╝рд╛ рдордиреЛрдмрд▓ рдЧрд┐рд░рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред :-) рд╣рдо рдкрд┐рдЫрд▓реЗ рд╕рднреА рдорд╣реАрдиреЛрдВ рд╕реЗ рдЗрд╕ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХрдИ рддрдХрдиреАрдХреА рдкрд╣рд▓реВ рдпрд╛ рддреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИрдВред рд╢реЗрд╖ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рджреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:

  • рд╢реБрд░реБрдЖрддреА рдбрд┐рдЬрд╝рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд╛рдИ рдЧрдИ рдЦрд╛рдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╕реАрдореЗрдВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрднреА рдЬреЛ рдХреБрдЫ рднреА рд╣реИ, рдЙрд╕реЗ рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреЗрд╡рд▓ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

  • рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдЕрдиреБрдХреВрд▓рддрд╛ рдФрд░ рдЕрдЪреНрдЫреА рдЪреВрдХред рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдЬ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рдореМрдЬреВрджрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдХрд╛рдо рдХрд╛ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреНрд▓рдХреНрд╕-рдЬреИрд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ useMutableSource рдорд╛рдзреНрдпрдо рд╕реЗ, рдмреЗрд╣рддрд░ рдШрдЯрдирд╛ рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдЪреБрдирдирд╛, рдПрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХреИрд╢рд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдирд╛) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХреА рдЧрдИ рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣ рдПрдХ рд▓рдВрдмреА рдкреВрдВрдЫ рд╣реИред

"рдХреНрдпрд╛ рдЖрдк рдЖрдЬ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ... рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдЖрдк рдЖрдЬ рдЗрд╕ рд╕рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХрд░ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рд░рд┐рд▓реЗ рд╣реБрдХ рдФрд░ рд╕рдорд╡рд░реНрддреА рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпреЛрдЬрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЙрд╕ рдмрд╛рд░ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдорд╛рдиреЗрдВрдЧреЗред рдмреЗрд╢рдХ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдмрдЧ рдпрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ , рддреЛ рдЖрдк @experimental рд░рд┐рд▓реАрдЬ рдХрд╛ рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ "рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреЗрд╕рдмреБрдХ рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдордиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдЪрд▓рддреА рдЯреНрд░реЗрди рдХреЗ рдКрдкрд░ рдордВрдерди рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд╣рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЬреЛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдареЛрд╕ рд╣реИред рдЗрд╕ рднрд╛рд░реА рдбреЙрдЧрдлреВрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, рдЫрд╣ рдорд╣реАрдиреЗ рдореЗрдВ рд╣рдордиреЗ рдЬреЛ рдЦрд╛рдорд┐рдпрд╛рдВ рдЦреЛрдЬреАрдВ, рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рд▓рдЧреЗрдВрдЧреЗред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рд╣реИред

@gaearon рдЗрд╕ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдФрд░ рдЕрдЧрд░ рдореЗрд░рд╛ рд▓рд╣рдЬрд╛ рдЧрд▓рдд рдерд╛ рддреЛ рдореИрдВ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдорд╣реАрдиреЛрдВ рд╕реЗ рдЯреНрд╡рд┐рдЯрд░ рдХреЛ рдЦрдВрдЧрд╛рд▓рдиреЗ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдкрд╛рдиреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢ рдерд╛ред рдпрд╣ рдкрд╣рд▓реВ Server renderer immediately flushes Suspense fallbacks (available in experimental releases) рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЕрдкреЛрд▓реЛ рдЧреНрд░рд╛рдлрдХрд▓ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдордп рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╣рд╛рдВ, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдФрд░ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝реЗ рдЬреНрдпрд╛рджрд╛рддрд░ "рдЦреБрд╢ рдкрде" рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд▓рд╕рд╛рдЬреА рд╡рд╣рд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рддреБрд░рдВрдд рд╕рд╕реНрдкреЗрдВрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдлрд╝реНрд▓рд╢ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз)

рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ рд╕рдорд╡рд░реНрддреА рдореЛрдб рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн (рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ) рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕, рд░рд┐рд▓реЗ рд╣реБрдХ рдФрд░ рд╕рдорд╡рд░реНрддреА рдореЛрдб рдХреЛ рдПрдХ рд╕рд╛рде (рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рд╕рд╛рде) рд╕реНрдЯрд┐рдЪрд┐рдВрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдбреЗрдореЛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдЖрдЬрдорд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореБрдЭреЗ рдкрд░реНрдпрд╛рдкреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдорд┐рд▓ рдЬрд╛рдПред

@ рдХреНрд░реЛрдХреЛрдбрд┐рд▓рди

рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдирдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд╕реА рдШрдЯрдХ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдордп рдирд┐рд▓рдВрдмрд┐рдд рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рдХрдЯрддрдо рд╕рд╕реНрдкреЗрдВрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдлрд╝реНрд▓рд╢ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЖрдк createRoot(node, { hydrate: true }).render(<App />) рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдирдИ рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рд╕рд╕реНрдкреЗрдВрд╕ рд╕реАрдорд╛рдПрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдлреЙрд▓рдмреИрдХ рдПрдЪрдЯреАрдПрдордПрд▓ рд╕реЗ "рд╕рдВрд▓рдЧреНрди" рд╣реЛрдВрдЧреА рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреАред

рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреВрд░реЗ рдРрдк рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм <App> рд▓реЛрдб рд╣реЛ рдЬрд╛рдП, рддреЛ рдЖрдк рд╣рд╛рдЗрдбреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдЙрдирдХрд╛ рдХреЛрдб рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ (рдЖрд▓рд╕реА рдХреЗ рд╕рдорд╛рди) рддрдм рддрдХ рдиреАрдЪреЗ рдХреЗ рдШрдЯрдХ рдирд┐рд▓рдВрдмрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ рд╕рд░реНрд╡рд░ HTML рд╕рд╛рдордЧреНрд░реА рд░рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд╕реНрдкреЗрдВрд╕ рд╕реАрдорд╛ "рд╕рдВрд▓рдЧреНрди" рдХрд░рддрд╛ рд╣реИред рдЬрдм рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рд╣рд┐рд╕реНрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдФрд░ рд░реАрдкреНрд▓реЗ рдЗрд╡реЗрдВрдЯ рдмрди рдЬрд╛рдПрдВрдЧреЗред

рдЖрдк рдЕрдЧрд▓реЗ рдПрдХреАрдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ/рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж @devknoll рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдХреБрдЫ рд╣реИред

рдЖрдк react@experimental рдФрд░ react-dom@experimental рдХрд░рдХреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ next.config.js рдЬреЛрдбрд╝рдХрд░ Next.js рдореЗрдВ рд╕рдорд╡рд░реНрддреА рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

// next.config.js
module.exports = {
  experimental: {
    reactMode: 'concurrent'
  }
}

рдпрд╣рд╛рдБ рдЗрд╕ рдкрд░ Next.js рдЪрд░реНрдЪрд╛ рд╣реИ: https://github.com/zeit/next.js/discussions/10645

рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдХрд┐рд╕реА рд╕рд╕реНрдкреЗрдВрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдЯрд┐рдХ рд╕рд╛рдЗрдЯ рдЬреЗрди рдЬреИрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП)? рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рдмрд╕ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?

рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреВрд░реЗ рдРрдк рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдмрд▓реЛрдб рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рд╣рд╛рдЗрдбреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдЙрдирдХрд╛ рдХреЛрдб рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ (рдЖрд▓рд╕реА рдХреЗ рд╕рдорд╛рди) рддрдм рддрдХ рдиреАрдЪреЗ рдХреЗ рдШрдЯрдХ рдирд┐рд▓рдВрдмрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ рд╕рд░реНрд╡рд░ HTML рд╕рд╛рдордЧреНрд░реА рдХреЛ рд░рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд╕реНрдкреЗрдВрд╕ рд╕реАрдорд╛ "рд╕рдВрд▓рдЧреНрди" рдХрд░рддрд╛ рд╣реИред рдЬрдм рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рд╣рд┐рд╕реНрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдФрд░ рд░реАрдкреНрд▓реЗ рдЗрд╡реЗрдВрдЯ рдмрди рдЬрд╛рдПрдВрдЧреЗред

@gaearon рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдШрдЯрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ React.lazy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреВрд░реНрдг рдорд╛рд░реНрдХ рдЕрдк рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдШрдЯрдХ рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рд░реНрдХрдЕрдк рдпрд╣рд╛рдБ рд╕рд╕реНрдкреЗрдВрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ?

@robrichard рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ React.lazy рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдирд╣реАрдВ рд╣реИ (рд╣рдо рдПрдлрдмреА рдкрд░ рдПрдХ рдЕрд▓рдЧ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд▓рд╛ рднреА рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╕рддреНрдпрд╛рдкрди рдпреЛрдЧреНрдп :-) рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде - рдЬреИрд╕реЗ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдКрдкрд░ рдХреЛрдИ рдореЗрдореЛ рдмреЗрд▓рдЖрдЙрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдКрдкрд░ рд╕рдВрджрд░реНрдн рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлреЙрд▓рдмреИрдХ рджрд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд╕рд╛рдеред

@gaearon рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЖрдВрд╢рд┐рдХ рдЬрд▓рдпреЛрдЬрди рдХреНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ #14717 рдХрд╛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдЬрдм рддрдХ рдЖрдк unstable_createRoot API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ @experimental рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЪрд╛рд▓реВ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдореЛ рд╣реИ: https://codesandbox.io/s/floral-worker-xwbwv?file=/src/index.js

@gaearon рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ "рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ" рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ?

@gaearon рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ "рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ" рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ?

рд╣рд╛рдВ рдмрд┐рд▓реНрдХреБрд▓ред рдКрдкрд░ рджреА рдЧрдИ рд╕реВрдЪреА рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдорд╛рдВрдЧрдиреА рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдмрд╣реБрдд рд╕рдВрдШрдирд┐рдд рд╣реИ рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд▓рдЧ рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЗ рд╕рдордп рд▓реЗ рд░рд╣реЗ рд╣реИрдВ)ред

рдореИрдВ рдЖрдкрдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣рдЯрддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реВрдВред рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ

"рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЛ рдорд┐рд▓рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рдмрд╛рд░ рд╣реИред "рд░рд┐рдПрдХреНрдЯреНрд░реА" рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд░рдЪрдирд╛ рднреА рдХрд░рдиреА рд╣реЛрдЧреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕рджреНрднрд╛рд╡ рдореЗрдВ рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдЬрд╛рд░реЛрдВ рдШрдЯрдХреЛрдВ рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реЛрдЧрд╛ред рд╣рдо рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреА рднреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреВрд▓рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдмрдирд╛ рд░рд╣реЗред рдПрдлрдмреА рдореЗрдВ, рд╣рдордиреЗ рд░рд┐рд▓реЗ рдЯреАрдо рд╕реЗ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЧреНрд░рд╛рдлрд╝рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ (рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЯреАрдо рдиреЗ рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдПрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдлрд╝реЗрдЪрд┐рдВрдЧ рд╕реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рд░рд┐рд▓реЗ рд╕реЗ рдХрдбрд╝реА рдореЗрд╣рдирдд рд╕реЗ рдЕрд░реНрдЬрд┐рдд рдкрд╛рда рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдХреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рд╕реЗ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рдРрдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдмрдбрд╝реЗ рдРрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рдРрдк рдЬреЛ npm рд╕реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рднреА рдЗрди рдЕрдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИрдВред рдЬреИрд╕реЗ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреЛрдб рднреЗрдЬрдирд╛ рдФрд░ рдЙрд╕реЗ рд╡реЙрдЯрд░рдлрд╝реЙрд▓ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ред рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдЫреЛрдЯреЗ рдРрдкреНрд╕ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдРрдкреНрд╕ рдирд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рдРрдк рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рдХрд░реЗ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдореЙрдбрд▓ рдЖрдкрдХреЗ рдРрдк рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдм, рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрди рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рд▓реЗ рдореЗрдВ "рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛" рдирд╛рдордХ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЧрддрд┐рд╢реАрд▓ import ред рдЧрддрд┐рд╢реАрд▓ import рд╣рдореЗрд╢рд╛ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдХреЛрдб рдХреЗрд╡рд▓ рддрднреА рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рдХреЛрдИ рд╢рд░реНрдд рд╕рд╣реА рд╣реЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рд╣реИ" рдпрд╛ "рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЕрдкрдард┐рдд рд╕рдВрджреЗрд╢ рд╣реИрдВ"), рддреЛ рдЖрдкрдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЗрд╕реЗ рдЖрд▓рд╕реА рддрд░реАрдХреЗ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк "рд▓рд╛рдд рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВ" (рдЬреИрд╕реЗ рдХрд┐ React.lazy ) рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдб-рд╡рд┐рднрд╛рдЬрд┐рдд рдШрдЯрдХреЛрдВ (рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдШрдЯрдХ) рдХреЗ рдХрдИ рд╕реНрддрд░ рд╣реИрдВ, рддреЛ рдЕрдВрддрд░рддрдо рдХреЗрд╡рд▓ рдКрдкрд░ рд╡рд╛рд▓реЗ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд▓реЛрдб рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ "рдЭрд░рдирд╛" рд╣реИред рд░рд┐рд▓реЗ "рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛" рдЖрдкрдХреЛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рджреЗрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХреНрд╡реЗрд░реА рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╛рдиреА "рдЕрдЧрд░ рдХреБрдЫ рд╢рд░реНрдд рд╕рд╣реА рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХреЛрдб рдЦрдВрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ"ред рдпрд╣ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛрдб-рд╡рд┐рднрд╛рдЬрд┐рдд рд╡рд┐рдЦрдВрдбреВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓реЛрдХреЗрд╢рди рдХрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдЙрддреНрдкрд╛рдж рдХреЛрдб рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рд╕реЗрдХрдВрдбреЛрдВ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ред

рдЕрдм, рдлрд┐рд░ рд╕реЗ, рд╣рдо рд░рд┐рд▓реЗ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ рдЧреНрд░рд╛рдлрд╝рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрд╣реБрдд рдХрдо рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЗрдПрд╕ рдХреЛрдб рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВ!) рдЙрд╕ рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ "рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛" - рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд░рд┐рд▓реЗ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдПрдХ рдмрдбрд╝реЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рдлрд╝рдХреНрдпреВрдПрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕ рдирд╛рдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдПрдХрд▓ рдмреБрд▓реЗрдЯ рд╕реВрдЪреА рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдерд╛ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

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

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

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

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

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

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

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