包-全局配置NPM库
Package-global config NPM library
我目前正在开发一个用于 React 的库,并且不完全知道我在技术上如何才能实现我想到的功能。
基本上它是一个表单验证库,所有配置都作为挂钩的参数。看起来是这样的:
const myFormReferenceObject = useForm({
onSubmit: (values) => {
// do whatever you want with the values
},
initialState: record,
formatMessage: translate,
submitUnmountedFields: false
});
问题是,我认为拥有某种全局配置可能非常有用,这样您就不必为构建的每个表单重复 100 次。
我的第一个想法是像 axios 一样,在其中创建一个 axios 实例并全局配置该实例。现在,我没有实例对象,因为我只是调用了一个 function/react 钩子。
然后我想到了在 window 对象中有一个命名空间,并将配置放在那里。然后我的钩子总是可以检查 window["namespace"] 中是否有一个配置来一次配置或覆盖所有表单。
另一种可能更具反应性的方式是为配置创建上下文。但老实说我真的不想这样做,因为库本身非常简单易用。 1. 调用 hook 来创建一个表单, 2. 使用字段级验证器和道具等将表单引用传递给每个输入字段。我喜欢这种简单性,添加上下文有点破坏了简单性,因为你总是必须用上下文包围你的组件.另一方面,您可以为应用程序中的不同模块设置多个上下文,这也很酷。
你有更好的主意还是你认为我应该采用 window 方法?
如果您有全局配置,您可以在调用 useForm
.
时简单地传播它
const myFormReferenceObject = useForm({
...myGlobalConfig,
onSubmit: (values) => {
// do whatever you want with the values
},
});
此外,如果您使用 window 方法,您可以使用 window[a symbol]
而不是 window[a string]
来避免冲突。
我目前正在开发一个用于 React 的库,并且不完全知道我在技术上如何才能实现我想到的功能。
基本上它是一个表单验证库,所有配置都作为挂钩的参数。看起来是这样的:
const myFormReferenceObject = useForm({
onSubmit: (values) => {
// do whatever you want with the values
},
initialState: record,
formatMessage: translate,
submitUnmountedFields: false
});
问题是,我认为拥有某种全局配置可能非常有用,这样您就不必为构建的每个表单重复 100 次。
我的第一个想法是像 axios 一样,在其中创建一个 axios 实例并全局配置该实例。现在,我没有实例对象,因为我只是调用了一个 function/react 钩子。
然后我想到了在 window 对象中有一个命名空间,并将配置放在那里。然后我的钩子总是可以检查 window["namespace"] 中是否有一个配置来一次配置或覆盖所有表单。
另一种可能更具反应性的方式是为配置创建上下文。但老实说我真的不想这样做,因为库本身非常简单易用。 1. 调用 hook 来创建一个表单, 2. 使用字段级验证器和道具等将表单引用传递给每个输入字段。我喜欢这种简单性,添加上下文有点破坏了简单性,因为你总是必须用上下文包围你的组件.另一方面,您可以为应用程序中的不同模块设置多个上下文,这也很酷。
你有更好的主意还是你认为我应该采用 window 方法?
如果您有全局配置,您可以在调用 useForm
.
const myFormReferenceObject = useForm({
...myGlobalConfig,
onSubmit: (values) => {
// do whatever you want with the values
},
});
此外,如果您使用 window 方法,您可以使用 window[a symbol]
而不是 window[a string]
来避免冲突。