Feliz: рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Zaid-Ajaj/Feliz

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

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рд░рдбрд╛рд░ рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд▓рд╛рдн рд╣реИрдВ:

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

рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреБрдЫ рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХреНрд╕ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдХреЛрдб рдмреНрд▓реЙрдХ рдЬреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреБрдЫ window рдЪрд░ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ try .. finally рдмреНрд▓реЙрдХ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд╛рд╕реНрдЯ рд░реАрдлреНрд░реЗрд╢ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдХрд░рдиреА рд╣реЛрдВрдЧреАред

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

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

рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдЬреНрдпрд╛рджрд╛рддрд░ рдмрдВрдбрд▓рд░ рдЯреВрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

  • рд╡реЗрдмрдкреИрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░реАрдлреНрд░реЗрд╢-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдлреНрд░реЗрд╢/HMR рдХреЙрд▓ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ (рд╣рд╛рдБ рдпрд╣ рдЕрднреА рднреА рд╡рд╣реА рд╣реИ рдЬреЛ рд╣реБрдб рдХреЗ рддрд╣рдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рднреА рдирд┐рд░реНрдпрд╛рдд рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рд╣реИрдВред

рдПрд▓реНрдорд┐рд╢ рд╕реНрдЯрд┐рд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо 2 рдлрд╝рдВрдХреНрд╢рди update рдФрд░ init рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд▓реНрдкрд┐рдд рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм/рдкрд░рд┐рднрд╛рд╖рд╛ред рдореИрдВрдиреЗ рджреГрд╢реНрдп рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рд╣реИ: рдкрд▓рдХ:

  • рджреВрд╕рд░реА рдУрд░ рд╕реНрдиреЛрдкреИрдХ рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ HMR рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

  • рдореИрдВрдиреЗ fast-refresh/runtime рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдП рдФрд░ рдпрд╣ рдКрдкрд░ рдореЗрд░реА рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред

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

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

рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд▓рдЧрдЗрди рдХреЛ рдлреЛрд░реНрдХ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ "рдирд┐рд░реНрдпрд╛рдд рдЬрд╛рдВрдЪ" рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

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

IHMO рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╣рдореЗрдВ Elmish.HMR рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ HMR рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЬрдм рдПрд▓реНрдорд┐рд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдлреЗрд▓рд┐рдЬ рдХреЛ рдЖрд╡реЗрджрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ Elmish.HMR рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА Elmish рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ Pure Fable.React, Pure Feliz, рджреЛрдиреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рд╢реБрджреНрдз Elmishред

рд╣рд╛рдБ, рдпрд╣ рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ Elmish.Debugger рдпрд╛ Elmish.HMR рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╕реНрдерд╛рди рдереЗ, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛ рдХрд┐ рд╡реЗ рд╕реАрдзреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рдереЗ рдпрд╛ рдирд╣реАрдВред

рдУрд╣, рдпрд╣ Elmish.HMR рд╣реИ рди рдХрд┐ Elmish.Debugger рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрджреЗрд╢ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ред

рдирд╣реАрдВ, рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ, Elmish.HMR рдПрд▓реНрдорд┐рд╢ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЫрд╛рдпрд╛ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдЪрдПрдордЖрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • Fable.Elmish . рд╕реЗ Program.run
  • Fable.Elmish.Browser . рд╕реЗ Program.toNavigable
  • Fable.Elmish.React . рд╕реЗ Program.withReactBatched
  • рдЖрджрд┐ред

@MangelMaxime AFAIK Elmish.HMR рд░рд┐рдПрдХреНрдЯ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдм рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд░рд╛рдЬреНрдп рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рд░реЗрдкреНрд░реЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛

@ рдЬрд╝реИрдж-рдЕрдЬрд╛рдЬ рдПрдЪрдПрдордЖрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред

рдореБрдЭреЗ рд╕реНрдерд┐рддрд┐ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред https://github.com/elmish/hmr/issues/26

рдЖрдк рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдЪрдПрдордЖрд░ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдЪрдПрдордЖрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдХреЛрдб рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрд▓реНрдорд┐рд╢ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд░рд╛рдЬреНрдп рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реИ рдФрд░ рдПрд▓реНрдорд┐рд╢ред рдПрдЪрдПрдордЖрд░ рдиреЗ рдПрд▓реНрдорд┐рд╢ рдХреЛ рд╕реАрдЦрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдореИрдВ Elmish.HMR рдореЗрдВ equalsButFunctions рдЫрд╛рдпрд╛ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛:

open Fable.React
open Elmish.HMR

рдПрдЪрдПрдордЖрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдПрдЪрдПрдордЖрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕реАрдзреЗ Fable.React рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдХреЗрд╡рд▓ open Fable.React рдФрд░ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдкрд░ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрдк HMR рдХреЛрдб рдХреЛ #if DEBUG ... #else ... #endif рдХреЗ рдмреАрдЪ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧреА рд╣реЛред
рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд░реЗрдкреЛ рдпрд╣рд╛рдВ рд╣реИред

dotnet fsi build.fsx рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЙрдЯрдкреБрдЯ рдЬреЗрдПрд╕ src\Client\www\fablejs . рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖ рдЬрд╛рдПрдЧрд╛
рдореЗрд░рд╛ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
``` рдЪ #
[]
рдЪрд▓реЛ рдХрд╛рдЙрдВрдЯрд░ () =
рдЪрд▓реЛ (рдЧрд┐рдирддреА, рд╕реЗрдЯрдХрд╛рдЙрдВрдЯ) = React.useState(0)
рдПрдЪрдЯреАрдПрдордПрд▓.рдбрд┐рд╡ [
рдкреНрд░реЙрдк.рд╕реНрдЯрд╛рдЗрд▓ [рд╕реНрдЯрд╛рдЗрд▓.рдкреИрдбрд┐рдВрдЧ 20]
рд╕рд╣рд╛рд░рд╛ рдмрдЪреНрдЪреЗ [
рдПрдЪрдЯреАрдПрдордПрд▓.рдПрдЪ1 рдЧрд┐рдирддреА
рдПрдЪрдЯреАрдПрдордПрд▓.рдмрдЯрди [
рдкреНрд░реЙрдк.рдЯреЗрдХреНрд╕реНрдЯ "рдЗрдиреНрдХреНрд░реАрдореЗрдВрдЯ"
prop.onClick (рдордЬрд╝рд╛ _ -> рд╕реЗрдЯрдХрд╛рдЙрдВрдЯ (рдЧрд┐рдирддреА + 2))
]
]
]

It will generate js like below. Under folder `src\Client\www\fablejs\Counter.js` I can edit and trigger `parcel` to update.
I replaced old `reactElement` with `createElement` then save the Counter.js and the `fast refresh` starts to work. And it works together with elmish HMR (wow nice:)).
Alias (`reactElement as createElement`) will not work. Only `import { createElement } from 'react';` seems work.
I also found some thing related to `createElement` in react-refresh: https://github.com/facebook/react/blob/ebf158965f2b437515af0bed2b9e9af280e0ba3c/packages/react-refresh/src/ReactFreshBabelPlugin.js#L192

```js
import { Feliz_React__React_useState_Static_1505 } from "./www/fablejs/.fable/Feliz.1.16.2/React.fs.js";
import { reactApi, reactElement, mkAttr, mkStyle } from "./www/fablejs/.fable/Feliz.1.16.2/Interop.fs.js";
import { ofArray, singleton } from "./.fable/fable-library.3.0.0-nagareyama-rc-007/List.js";
import { createObj } from "./.fable/fable-library.3.0.0-nagareyama-rc-007/Util.js";
import { createElement } from 'react';

export function Counter() {
    let properties, elems, xs;
    const patternInput = Feliz_React__React_useState_Static_1505(0);
    const setCount = patternInput[1];
    const count = patternInput[0] | 0;
    const xs_1 = ofArray([(properties = singleton(mkStyle("padding", 20)), mkAttr("style", createObj(properties))), (elems = [createElement("h1", createObj(singleton(["children", new Int32Array([count])]))), (xs = ofArray([mkAttr("children", "Increment"), mkAttr("onClick", (_arg1) => {
        setCount(count + 10);
    })]), createElement("button", createObj(xs)))], mkAttr("children", reactApi.Children.toArray(Array.from(elems))))]);
    return createElement("div", createObj(xs_1));
}

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдо Fast Refresh рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ !!!

рд╣рд╛рдп рд╡рд╣рд╛рдБ @albertwoo ,

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЛ v1.17.0 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдХреНрдпреЛрдВрдХрд┐ рдлрд╛рд╕реНрдЯ-рд░реАрдлреНрд░реЗрд╢ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡реЗрдмрдкреИрдХ рдФрд░ рджреЛрд╕реНрддреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд╡реАрдирддрдо рд╕реЗрдЯ рд╣реИред рдХреГрдкрдпрд╛ SAFE рджреЗрдЦреЗрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдВ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ reactElement рдХреЛ createElement рдореЗрдВ рдмрджрд▓реЗ рдмрд┐рдирд╛

рдореИрдВ рдпрд╣ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдкрд╛рд░реНрд╕рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣ рдкрд╛рд░реНрд╕рд▓ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ? рдирд╡реАрдирддрдо 2.0-рдмреАрдЯрд╛ рдлрд╛рд╕реНрдЯ-рд░реАрдлреНрд░реЗрд╢ рдХреЛ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд░рд╛рдд рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд╛рд░реНрд╕рд▓ рд░реЗрдкреЛ рдкрд░ рдпрд╣ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ

рд▓реЗрдХрд┐рди SAFE.React @pmmmwh/react-refresh-webpack-plugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдкреЛ рд╕реЗ рддреЗрдЬрд╝ рд░реАрдлреНрд░реЗрд╢ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╣реИ? рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдБред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ reactElement рдХреЛ createElement рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реИрд▓реА рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ?

рдореИрдВрдиреЗ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЛ 1.17.0.0.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ рдкрд╛рд░реНрд╕рд▓ 2.0.0-nightly.447 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗред

рд▓реЗрдХрд┐рди SAFE.React @pmmmwh/react-refresh-webpack-plugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдкреЛ рд╕реЗ рддреЗрдЬрд╝ рд░реАрдлреНрд░реЗрд╢ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╣реИ? рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдБред

рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди fast-refresh рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╣рдХрд░реНрдореА рдирд┐рд░реНрднрд░рддрд╛ v0.9.0 рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ-рд▓реЙрдХ-рдЬреЗрд╕рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╛рд╕реНрдЯ-рд░реАрдлреНрд░реЗрд╢ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдирд╡реАрдирддрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдХреНрдпрд╛ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реИрд▓реА рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ?

рдпрд╣ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, reactElement рдХреЗрд╡рд▓ createElement рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдлрд╛рд╕реНрдЯ-рд░реАрдлреНрд░реЗрд╢ рдкреНрд▓рдЧрдЗрди рджреЛрдмрд╛рд░рд╛ рдЖрдпрд╛рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)ред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдореИрдВрдиреЗ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЛ 1.17.0.0.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ 2.0.0-nightly.447 рдкрд╛рд░реНрд╕рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗред

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

рдореИрдВ react-refresh рдХреЗ рд▓рд┐рдП рднреА 0.9.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрдм рдкрд╛рд░реНрд╕рд▓ 2 рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@albertwoo рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?

./www/fablejs/.fable/Feliz.1.17.2/Interop.fs reactElement рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдмрджрд▓реЗрдВ

[<RequireQualifiedAccess>]
module Interop =
    let reactElement (name: string) (props: 'a) : ReactElement = import "createElement" "react"

рдкреНрд░рддрд┐

[<RequireQualifiedAccess>]
module Interop =
    let inline reactElement (name: string) (props: 'a) : ReactElement = import "createElement" "react"

рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ inline рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛

рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдпрд╛рдд рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ createElement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ./www/fablejs/.fable/Feliz.1.17.2/Interop.fs рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрд┐рдд рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрдЧреЗ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдПрдХ рдФрд░ рдЕрдЬреАрдм рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдлреЗрд▓рд┐рдЬ рдирдЧреЗрдЯ рдкреИрдХрдХреЗрдЬ рдХреЗ рдлреЛрд▓реНрдбрд░ fable рдХреЗ рддрд╣рдд рд╣рд░ .fs рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП .fs.js рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рдереЗред

рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рдереЗред

рдпрд╣ рд╕рд╣реА рд╣реИ, Fable рд╕рдВрдХреБрд▓ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдареАрдХ рдХрд░реЗрдВ, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ

рддреЛ рдпрд╣ рд╣реЛрдирд╛ рд╣реИ?
image

рддреЛ рдпрд╣ рд╣реЛрдирд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ .fs рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди .fs.js рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЛ Fable.React рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЗрд╡рд▓ рд╡рд╣рд╛рдВ рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдореБрд╕реНрдХрд╛рди:

рдареАрдХред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреЛ рдХреЗрд╡рд▓ .fs рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓реЗрдЦрдХ рдХреЗрд╡рд▓ рдПрдл # рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдлреИрдмрд▓ рдЙрдиреНрд╣реЗрдВ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдл # рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд░рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ fable рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛? рдореЗрд░реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдирдЧреЗрдЯ рдХреИрд╢ рдлреЛрд▓реНрдбрд░ рдХреЗ рддрд╣рдд рдлреЗрд▓рд┐рдЬ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реЗ .fs.js рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ Feliz.fsproj рдиреЗ рд╕рднреА .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП *.fs.js :
https://github.com/Zaid-Ajaj/Feliz/blob/30544a5757517f090cac627be264472db2ea9afd/Feliz/Feliz.fsproj#L22

рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@albertwoo рдлрд╝реЗрд▓рд┐рдЬрд╝ v1.18 (рдЕрдм v1.19) рдХреЗ рдмрд╛рдж рд╕реЗ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ createElement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдордзреНрдпрд╡рд░реНрддреА reactElement рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдореЗрдВред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

@ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдиреЗ рдЕрднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

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

рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдЬреНрдпрд╛рджрд╛рддрд░ рдмрдВрдбрд▓рд░ рдЯреВрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

  • рд╡реЗрдмрдкреИрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░реАрдлреНрд░реЗрд╢-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдлреНрд░реЗрд╢/HMR рдХреЙрд▓ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ (рд╣рд╛рдБ рдпрд╣ рдЕрднреА рднреА рд╡рд╣реА рд╣реИ рдЬреЛ рд╣реБрдб рдХреЗ рддрд╣рдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рднреА рдирд┐рд░реНрдпрд╛рдд рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рд╣реИрдВред

рдПрд▓реНрдорд┐рд╢ рд╕реНрдЯрд┐рд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо 2 рдлрд╝рдВрдХреНрд╢рди update рдФрд░ init рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд▓реНрдкрд┐рдд рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм/рдкрд░рд┐рднрд╛рд╖рд╛ред рдореИрдВрдиреЗ рджреГрд╢реНрдп рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рд╣реИ: рдкрд▓рдХ:

  • рджреВрд╕рд░реА рдУрд░ рд╕реНрдиреЛрдкреИрдХ рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ HMR рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

  • рдореИрдВрдиреЗ fast-refresh/runtime рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдП рдФрд░ рдпрд╣ рдКрдкрд░ рдореЗрд░реА рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред

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

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

рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд▓рдЧрдЗрди рдХреЛ рдлреЛрд░реНрдХ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ "рдирд┐рд░реНрдпрд╛рдд рдЬрд╛рдВрдЪ" рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

@ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВ?

@Shmew рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ @MangelMaxime рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдлрд╝реЗрд▓рд┐рдЬрд╝ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╕реЗ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЗрд╕реЗ рдЕрднреА рддрдХ рдмрдВрдж рди рдХрд░реЗрдВ ЁЯЩП

рдХреЗрд╡рд▓ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ Elmish.HMR NuGet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдирдХ Elmish рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдХрдИ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ рдмрд╣реБрдд Feliz.UseElmish рдкрд╣рд▓реЗ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Elmish рдирд╣реАрдВ рд╣реИ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ fast-refresh рдХреЗрд╡рд▓ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП dispatch рдЙрджрд╛рд╣рд░рдг рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрджреНрдпрддрди/рдкреНрд░рдЪрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИред

рдлрд┐рд░ рд╕реЗ, рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг 2 рдорд╣реАрдиреЗ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдареАрдХ рд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ "рд╢рд╛рд╕реНрддреНрд░реАрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди "рдорд╛рдирдХ" рдПрд▓реНрдорд┐рд╢ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдлреЗрд▓рд┐рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рддрд╛рдЬрд╝рд╛-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдирд┐рд░реНрдпрд╛рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП ReactComponentAttribute рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Fable рдХреЛ рдмрддрд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛рдиреА Counter.fs Counter.fs.js рдФрд░ CounterRC.fs.js рдпрд╛ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдмрди рдЬрд╛рддрд╛ рд╣реИ?

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