Привет Томаш,
Сначала я думаю, что ваша библиотека интересна, мне нравится литеральный синтаксис шаблона. Но у меня есть веская причина использовать message.id.
- message.id позволит вам переводить пространства имен в приложения и компоненты (id=”Description.contact.link”)
- Вы можете указать дополнительную информацию для переводчика в описании
- вы можете использовать message.id для целей управления контентом (я расскажу об этом в следующей статье)
- добавление текста в ваши компоненты, который ведет себя как ключ, может усложнить обслуживание в больших проектах.
- у вас могут быть конфликты имен, а рефакторинг кода также потребует изменения переводов.
- большая проблема заключается в тестировании поверхностного компонента рендеринга с использованием моментальных снимков Enzyme и Jest с переводом, что даст вам следующий результат.
it("shallow", () => { const wrapper = shallow( <Link href="#"> <FormattedMessage {...messages.contactLink} /> </Link> ); expect(wrapper).toMatchSnapshot(); }); /* <a href="#"> <FormattedMessage defaultMessage="Leave a phone number" description="follow contact link text" id="Description.contact.link" values={Object {}} /> <a/> */