React: рд╣реБрдХ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рд╕рд╕реНрдкреЗрдВрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдлрд╝рд░ре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рд╕рд╡рд╛рд▓ред рдпрд╣ #14563 рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рдПрдХ рд╣реБрдХ рд╕реЗ рд░рд╣рд╕реНрдп рдХреИрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ?

рд╕рд╡рд╛рд▓ рдХреНрдпреЛрдВ рдЖрдпрд╛?

рдпрд╣ рдкреНрд░рд╢реНрди рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ react-i18next рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдордиреЗ рдЖрдпрд╛ред react-i18next рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рдЕрдкрдбреЗрдЯ рдиреЗ useTranslation -рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдЕрдиреБрд╡рд╛рдж рдирд╛рдорд╕реНрдерд╛рди (рдереЛрдбрд╝реЗ рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рдХреА рддрд░рд╣) рдХреА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рднреА рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЕрдиреБрд╡рд╛рдж рдЕрднреА рддрдХ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, useTranslation -рд╣реБрдХ Suspense рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдл рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдлрд╛рдИ рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ!

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

рдЙрджрд╛рд╣рд░рдг

const Component = () => {
  const [t] = useTranslation('translationnamespace');
  const [count, setCount] = useState(0);

  return (
    <div onClick={() => setCount(count + 1)}>
      {t('The count is:')} {count}
    </div>
  );
};

рдЕрдЧрд░ translationnamespace рдЕрднреА рддрдХ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ useTranslation рдлреЗрдВрдХ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ useState рдХреЛ рд░реЗрдВрдбрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред рдПрдХ рдмрд╛рд░ translationnamespace рд▓реЛрдб рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, useTranslation рдЕрдм рдФрд░ рдирд╣реАрдВ рдлреЗрдВрдХреЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдХрд╛рд░рдг useState рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛

рддреЛ рдпрд╣ рдкреНрд░рд╢реНрди рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-i18next рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрди рд╕рднреА рд╣реБрдХ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд░рд╣рд╕реНрдп рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди "рд╣реБрдХ рдХреЗ рдирд┐рдпрдо" рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣реБрдХ рдХреЛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ 16.8.2 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдерд╛ред рдХреГрдкрдпрд╛ рдПрдХ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЦреЛрд▓реЗрдВ рдпрджрд┐ рдирд╣реАрдВред

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

рдпрд╣ рдПрдХ рдЧрд▓рддреА рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд▓рдВрдмрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЖрдЧ рд▓рдЧрддреА рд╣реИред рдЕрдлреИрдХ рдЬреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд╣реАрдВ рдерд╛ред

рдареАрдХ рд╣реИ, рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛!

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ 16.8.2 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдерд╛ред рдХреГрдкрдпрд╛ рдПрдХ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЦреЛрд▓реЗрдВ рдпрджрд┐ рдирд╣реАрдВред

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

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

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

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

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

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

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