Feliz: Feliz . рдХреЗ рд▓рд┐рдП "рдпрд╣ рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдбреЙрдЯрдиреЗрдЯ-рдЖрдзрд╛рд░рд┐рдд SSR

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЕрдХреНрддреВре░ 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Zaid-Ajaj/Feliz

Fable.React рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдореБрдЭреЗ рдЬреЛ рдЪреАрдЬ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдЖрддреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ Feliz/Feliz.ViewEngine , SSR рджрд░реНрджрдирд╛рдХ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЗрдЦрднрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ ..рдареАрдХ рд╣реИ, рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдХреЛ рдмрджрд╕реВрд░рдд рдмрдирд╛рддрд╛ рд╣реИред

Fable.React , рдореИрдВ рдмрд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдореЗрд░реА рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА SSR'd рдереАред "рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ"ред рдФрд░ рди рдХреЗрд╡рд▓ SSR рдХреЗ рд▓рд┐рдП, рдЗрд╕рдиреЗ рдореБрдЭреЗ рдмреЗрд╣рддрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдЦреЛрдЬрдиреЗ рдореЗрдВ рднреА рдорджрдж рдХреАред

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

open Feliz 

рдФрд░ рдпрд╣ AspNetCore рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Fable.Remoting рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде, рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рд▓рд┐рдП рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рд╕рдорд░реНрдерди рдПрдХ рдлреЗрд▓рд┐рдЬ/рдПрд╕реНрдкрдиреЗрдЯрдХреЛрд░ рд╕реНрдЯреИрдХ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдПрдл # рдХрд╣рд╛рдиреА рдХреЛ рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ред

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

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

рдЪреВрдВрдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ Fable 3 рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдордп рд╣реИ, рдЬрдмрдХрд┐ рд╣рдо рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрдиреНрдп рдореБрджреНрджреЛрдВ @ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ @ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рддрдирд╛ рдХрд┐ рдорд╛рдБ рдХреА рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛ рдЙрд╕рдХреЗ рдХреЛрдб рдмреЗрд╕ рдкрд░ рдлреИрд▓рд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ), рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рджрд░реНрджрдирд╛рдХ рд╣реЛрдЧрд╛ /messy рдЕрдЧрд░ рдпрд╣ рдЙрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдЧреЗрдЯ-рдЧреЛ рд╕реЗ SSR рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рд╣рд╛рдВ, рдореИрдВ рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рднреА рд░рдЦрддрд╛ рд╣реИред

рд╣рд╛рдп @ l3m , рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдмрд╕ рдХрд╛рдо" рдХреА рдЪреАрдЬреЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реЛрдВрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдФрд░ рд╢рд┐рдлреНрдЯ рдлреЛрдХрд╕ рдХреЛ рдмреЗрд╣рдж рдЬрдЯрд┐рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджрд┐рди рд╕реЗ, рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ SSR рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ Fable.React рдореЗрдВ рдЬреЛ рдЧрдбрд╝рдмрдбрд╝ рд╡рд┐рд╡рд░рдг рджреЗрдЦрд╛ рдерд╛, рдЙрд╕рдХреЗ рдХрд╛рд░рдгред

рдЕрднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ SSR рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП Fable.React рдФрд░ рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП Feliz рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ Feliz/Feliz.ViewEngine рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реИред

рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрднреА рд╢реБрджреНрдз рд░рд┐рдПрдХреНрдЯ рд╕рдорд░реНрдерди рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ: рдЙрдЪрд┐рдд Svg рд╕рдорд░реНрдерди #251, рдЙрдЪрд┐рдд рддреЗрдЬрд╝-рддрд╛рдЬрд╝рд╛ рд╕рдорд░реНрдерди (#157 рдФрд░ #260) Fable 3 рдХреЗ рд╕рд╛рде рдФрд░ рд╕рднреА рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝) , рдЙрджрд╛рд╣рд░рдг рдЖрджрд┐)

@ рдЬрд╝реИрдж-рдЕрдЬрд╛рдЬ рдПрдЪрдПрдо, рдпрд╣ рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХрд╛рд░рдг рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЖрд╢реНрд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдПрд╕рдПрд╕рдЖрд░ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдпрд╣ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдореЗрдВ рд╣реЛрддрд╛, рддреЛ рд╕рднреА рдЖрд╢реНрд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рднреА рд╣реЛрддрд╛ред

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

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

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдареЛрд╕ рддрд░реНрдХ рд╣реИ imoред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реИ, рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣рдо рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрддреНрд╡реЛрдВ рдХреЗ рд╕рднреА (рдпрд╛ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдорд╛рди 2-3 рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдФрд░ рдРрд╕реЗред рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрди рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡реНрдпреВ рдЗрдВрдЬрди рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬреЗрдВ рдХреА рдЧрдИ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд╢рд╛рдпрдж @dbrattli рдЙрди/рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЭрдВрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдореИрдВ рдЦреБрдж рджрд░реНрдж рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ: рдирд┐рдпреБрдХреНрдд:ред рдЕрдзрд┐рдХрддрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ #if FABLE_COMPILER рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд┐ Ionide Feliz.ViewEngine рдХреЗ ReactElement рдкрд░ рдЪреЛрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, Fable.React рдХреЗ ReactElement рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдлрд╝реЗрд▓рд┐рдЬрд╝ рд╕реЗ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЬреИрд╕реЗ Feliz.MaterialUI рд╕реЗ .ViewEngine рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдВрдХ рдореЗрдВ рд░рдЦрдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА Feliz.Bulma.ViewEngine рдХреЛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд░рдЦрдирд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред

рдлреЗрд▓рд┐рдЬрд╝ рдХреЛрдб рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ unbox<string>(value) рдХреЗ рдмрдЬрд╛рдп string value ред рдпрд╣рд╛рдБ рдкреВрд░реНрдг рд▓рд╛рдн рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдЕрдВрддрд░ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреБрдЫ Fable.Core.JsInterop рд╕рд╛рдорд╛рди рднреА рд╣реИрдВ рдЬреИрд╕реЗ: !!e?value <> !!value then e?value рдЬрд┐рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Feliz.ViewEngine рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ ReactElement рд╡рд╛рдкрд╕ HTML рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо Interop.fs рдореЗрдВ ViewEngine рдкреНрд░рдХрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХреЗрдВ рдЬрдм !FABLE_COMPILER ред ViewEngine рдкреНрд░рдХрд╛рд░ рдЕрднреА рднреА ReactElement рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдорд╛рди рд░рд╣рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдХреБрдЫ #if FABLE_COMPILER рдЦреБрдж рдлреЗрд▓рд┐рдЬ рдХреЛ рджреЗрдиреЗ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рддрдм рддрдХ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ @ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХреГрдд рдирд╣реАрдВ рдХрд░ рджреЗрддреЗред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Feliz.Bulma рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП unbox<string>(value) рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕ рдкрд░ рдПрдХ рдЖрдо рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдирд┐рд░реНрднрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдВрддрддрдГ рднреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЬрдм рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╣рдо unbox<string> рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

box / unbox рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреЗрдПрд╕ рд╣реИред

string i рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ:

// fable-library

export function int32ToString(i: number, radix?: number) {
  i = i < 0 && radix != null && radix !== 10 ? 0xFFFFFFFF + i + 1 : i;
  return i.toString(radix);
}

// Calling site
import { int32ToString } from "fable-library/Util.js";

export const test = int32ToString(1);

unbox<string> 1 рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ:

export const test = 1;

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

рдЕрдм, рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

let inline unboxStr o = 
    #if FABLE_COMPILER  
    unbox<string> o
    #else
    string o
    #endif

рдлрд┐рд░ рд╣рдо рдХреЗрд╡рд▓ unbox<string> рдкрд░ рдПрдХ рдЦреЛрдЬ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддреЗ рд╣реИрдВред

рдЪреВрдВрдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ Fable 3 рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдордп рд╣реИ, рдЬрдмрдХрд┐ рд╣рдо рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрдиреНрдп рдореБрджреНрджреЛрдВ @ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ @ рдЬреИрдж-рдЕрдЬрд╛рдЬ рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рддрдирд╛ рдХрд┐ рдорд╛рдБ рдХреА рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛ рдЙрд╕рдХреЗ рдХреЛрдб рдмреЗрд╕ рдкрд░ рдлреИрд▓рд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ), рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рджрд░реНрджрдирд╛рдХ рд╣реЛрдЧрд╛ /messy рдЕрдЧрд░ рдпрд╣ рдЙрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдЧреЗрдЯ-рдЧреЛ рд╕реЗ SSR рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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