0

我正在为一个网站开发一个 React 组件库。对于本地开发,我使用 Storybook。我认为bit可以是一个很好的工具(比 npm link 更好),用于导出库组件并将它们导入到网站 repo 中。现在的问题是我正在为某些组件使用全局上下文,但位组件必须是隔离的和自给自足的。我不想包装我所有使用全局上下文的小组件,只是为了在bit.dev上呈现它们!

我已经能够使用装饰器解决故事书的相同问题。因此,我定义了一个组件而不用 a 包装它,ContextProvider然后在故事文件中我使用了一个装饰器,它用ContextProvider.

有没有办法用全局上下文提供程序包装位组件,而不包装将在生产网站中使用的实际组件,其中单个全局上下文提供程序包装整个应用程序?这种工作流程的最佳实践怎么样?

4

1 回答 1

1

不建议在实现可重用组件时使用全局上下文。
不仅在使用 Bit 时,而且当另一个项目使用组件时,它需要具有相同的确切上下文才能使组件工作。降低组件的可重复使用性和对消费者的吸引力。
事实上,在 bit.dev 的操场上渲染示例并不方便,这是它的副作用。
您可以做的是将状态与组件分离,并使用参数通过 API 直接获取状态和操作。或者您可以将状态封装在组件内部。您可以在 Bit 构建可重用组件的最佳实践中了解更多相关信息 - https://docs.bit.dev/docs/best-practices#state-managers
以及此处 -https://github.com/Tallyb/reusable-components-styleguide#globals

于 2020-05-20T11:59:41.540 回答