导入
useTranslation
钩子,然后从中获取 t()
函数有什么实际区别吗:
import { useTranslation } from 'react-i18next';
// Inside a component:
const { t } = useTranslation();
并直接从
t()
导入 i18next
函数:
import { t } from 'i18next';
是的,这两种方法之间存在实际差异:
useTranslation()
来自react-i18next
:import { useTranslation } from 'react-i18next';
const { t } = useTranslation();
t
函数绑定到当前的 React 上下文,这意味着它负责处理特定于上下文的语言设置,例如可能在应用程序生命周期中更改的当前语言或命名空间。i18next.changeLanguage()
更改语言,组件将自动使用新翻译重新渲染。'common'
、'footer'
),则该挂钩可以在组件级别提供在它们之间切换的灵活性。i18next
导入:import { t } from 'i18next';
i18next
实例。它与 React 上下文没有任何连接,因此当语言发生变化时它不会重新渲染组件。t
功能是静态的,如果语言发生变化,不会触发重新渲染。当您需要在 React 组件之外或非 React 代码中进行翻译时,它非常有用。useTranslation()
进行动态翻译,当语言更改时更新。t
导入。