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中创建一个axios实例并全局配置实例。现在,我没有实例对象,因为我只是调用了一个函数/react钩子。

然后我有了在窗口对象中使用配置放置一个命名空间的想法。这样,我的钩子就可以检查该窗口[" namspace "]中是否有配置可以一次配置或覆盖所有表单。

另一种,可能是更反应的方法,是为配置创建上下文。但说实话,我真的不想这样做,因为库本身非常简单,易于使用。1. 2.调用hook创建表单。通过字段级验证器和props等将表单引用传递给每个输入字段。我喜欢它的简单性,而添加一个上下文有点破坏了它的简单性,因为你总是要用一个上下文来包围你的组件。另一方面,你可以为应用程序中的不同模块拥有多个上下文,这也会非常酷。

你有更好的主意吗,还是你认为我应该采用窗口方法?

如果您有全局配置,您可以在调用useForm时休息扩展它。

const myFormReferenceObject = useForm({
...myGlobalConfig,
onSubmit: (values) => {
// do whatever you want with the values
},
});

如果您使用窗口方法,您可以使用window[a symbol]而不是window[a string]来避免冲突。

最新更新