1.0.3 • Published 4 years ago
zuoy-hooks v1.0.3
zuoy-hooks
这是zuoy提供的自定义react hooks
useZuoyIntl
基于react-intl的useIntl的formatMessage封装,返回zuoy的z函数。
注意此hook是使用
useIntl的formatMessage的一个代替,前提是你必须先添加react-intl要求的IntlProvider
import { useZuoyIntl } from 'zuoy-hooks';
const App = () => {
const z = useZuoyIntl();
return <div>{z('你好')}</div>
}
export default App;指定环境
useZuoyIntl默认会从localStorage中读取env字段,来判断z函数的返回。
也可以通过参数传入环境,这个优先级会更高一些。
import { useZuoyIntl } from 'zuoy-hooks';
const App = () => {
const z = useZuoyIntl('prod');
return <div>{z('你好')}</div>
}
export default App;dev环境
在dev环境下,zuoy不会使用react-intl,直接返回输入的内容。比如在上面的例子中,z('你好')直接返回你好。如果是z('你好,{name}', { name: 'zuoy' }),则格式化之后再返回,即你好,zuoy。
prod环境
上面的例子在prod环境下,zuoy会返回intl.formatMessage({ id: '你好' })
Z函数参数说明
z函数传参主要满足intl.formatMessage的要求。
第一个参数
descriptor,z函数的descriptor类型ZuoyDescriptor在intl.formatMessage的Descriptor类型上拓展了value属性,会在返回时直接给到intl.formatMessage中descriptor的id属性。这个value属性也可以直接放到z函数的第一个参数。
descriptor
type: string | ZuoyDescriptor;
values
type: Record<string, PrimitiveType>