zuoy-hooks
v1.0.3
Published
这是zuoy提供的自定义react hooks
Downloads
4
Readme
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>