Feliz: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рднреНрд░рдо рдХреЛ рд░реЛрдХреЗрдВ

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

рд░рд┐рдПрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП FunctionComponent.Of рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддреБрд░рдВрдд рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдЕрдм рдЙрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдкрдЫрддрд╛рд╡рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рд╕рд╛рдорд╛рдиреНрдп" рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд░рд┐рдПрдХреНрдЯ рдРрдкреНрд╕ рдореЗрдВ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ JSX рддрддреНрд╡ рдПрдХ рдШрдЯрдХ рд╣реИ, рд▓реЗрдХрд┐рди F # рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ JSX рдФрд░ рдмрд╛рдХреА рдХреЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░)ред

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

let MyComponent: ReactElementType<MyProps> =
    ReactElementType.empty
    |> ReactElementType.withDisplayName "MyComponent"
    |> ReactElementType.withMemo (fun p1 p2 -> p1 = p2)
    // When the function body is big it's better to put the other config options on top,
    // that's why I'm moving it to the botton
    |> ReactElementType.fromFunction (fun props ->
        ...
    )

let view model dispatch =
    Html.div [
        prop.children [ React.create MyComponent { MyProps... } ]
    ]

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рддрдХ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ FunctionComponent.Of рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред

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

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

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

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

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

@alfonsogarciacaro , рд╢рд╛рдпрдж рдПрдХ рдмреЗрд╡рдХреВрдл рд╕рд╡рд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рднреЗрдж рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВ?

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

рдореЗрд░реЗ рдкрд╛рд╕ @SCullman рдЬреИрд╕рд╛ рд╣реА рдкреНрд░рд╢реНрди рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдЗрди рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рдХреЙрд▓рд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ, рдЬреИрд╕реЗ JSX рдХреЗ рд╕рд╛рдеред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

"рд░рд┐рдПрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ ReactElement рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рддрд╛рдХрд┐ рдЖрдк рддреБрд░рдВрдд рдЕрдкрдиреЗ render рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдВ

// normal function
let greet (input: {| name: string |}) = Html.h1 input.name

// React component
let great = React.functionComponent(fun (input: {| name: string |}) -> Html.h1 input.name)

Html.fragment [
  greet {| name = "John" |}
  greet {| name = "Jane" |}
]

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

рдмрд┐рд▓реНрдбрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдиреЗ рд╕реЗ рдХреЗрд╡рд▓ рдЪреАрдЬреЗрдВ рдЬрдЯрд┐рд▓ рд╣реЛрдВрдЧреА рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рд╡реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдПред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ FunctionComponent.Of рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред

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

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

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

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

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдлреЗрд▓рд┐рдЬ / рд░рд┐рдПрдХреНрдЯ / рдиреЙрдЯ рдЬрд╕реНрдЯ рдлрдВрдХреНрд╢рдВрд╕ рдореЗрдВ рджрд╕рд╡реАрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛

рдЕрдЧрд░ рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ

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