Javascript 如何在React中全局共享库?
例如,有一个样式化的组件库,如果我想在10个组件中使用它,我必须导入10次呢?还是说HOC是唯一的解决方法 我在ExampleComponent中这样做:Javascript 如何在React中全局共享库?,javascript,reactjs,Javascript,Reactjs,例如,有一个样式化的组件库,如果我想在10个组件中使用它,我必须导入10次呢?还是说HOC是唯一的解决方法 我在ExampleComponent中这样做: import styled from 'styled-components`; 然后我就可以使用它了,我需要一个带有HOC方法的例子或者更好的例子 。。。我要进口10次 只有当组件都在它们自己的模块中定义,并且它们都需要使用样式化的组件时。每个模块必须导入一次,而不是每个组件导入一次。没有要求每个组件都在自己的模块中编写,这样做与否取决于风
import styled from 'styled-components`;
然后我就可以使用它了,我需要一个带有HOC方法的例子或者更好的例子
。。。我要进口10次
只有当组件都在它们自己的模块中定义,并且它们都需要使用样式化的组件时。每个模块必须导入一次,而不是每个组件导入一次。没有要求每个组件都在自己的模块中编写,这样做与否取决于风格
作为:
我仍然感到惊讶的是,“每个文件一个函数”显然是不必要的,但“每个文件一个组件”在某种程度上是一种常见的做法
无论如何,别担心:你只有一本图书馆。导入只是将模块绑定在一起,而不是将您从中导入的模块复制到您的模块中
。。。我要进口10次
只有当组件都在它们自己的模块中定义,并且它们都需要使用样式化的组件时。每个模块必须导入一次,而不是每个组件导入一次。没有要求每个组件都在自己的模块中编写,这样做与否取决于风格
作为:
我仍然感到惊讶的是,“每个文件一个函数”显然是不必要的,但“每个文件一个组件”在某种程度上是一种常见的做法
无论如何,别担心:你只有一本图书馆。导入只是将模块绑定在一起,而不是将您从中导入的模块复制到您的模块中。以防您需要一个HOC。您可以执行以下操作:
import styled from 'styled-components`;
const Wrapper = styled.section`
padding: 4em;
background: papayawhip;
`;
const withWrapper = component => {
return <Wrapper>{component}</Wrapper>
}
export default withWrapper;
然后将其用作:
const Home = () => {
return <h1>Home</h1>
}
export default withWrapper(Home);
希望这对您有所帮助。以防您需要帮助。您可以执行以下操作:
import styled from 'styled-components`;
const Wrapper = styled.section`
padding: 4em;
background: papayawhip;
`;
const withWrapper = component => {
return <Wrapper>{component}</Wrapper>
}
export default withWrapper;
然后将其用作:
const Home = () => {
return <h1>Home</h1>
}
export default withWrapper(Home);
希望这将对您有所帮助。…此时您必须导入包装器,导入次数与导入样式化组件的次数相同。使用HOC可能还有其他原因,但避免重复导入不是其中之一。是的,你是对的@t.J.Crowder。但我这样写是因为他要求有人能给他展示一种使用HOC的方法。谢谢你举个例子,事实上,现在我需要在每个需要样式化组件的组件中使用这个包装器,哈哈……在这一点上,你必须导入包装器,就像导入样式化组件一样多次。使用HOC可能还有其他原因,但避免重复导入不是其中之一。是的,你是对的@t.J.Crowder。但我这样写是因为他要求有人能给他展示一种使用HOC的方法。谢谢你举个例子,事实上,现在我需要在每个需要样式化组件的组件中使用这个包装器,lol>只有在组件都在自己的模块中定义的情况下。例如,如果我有一个父组件,那么我在其中使用Child1、Child2、Child3组件,那么我就不需要在childs中导入样式化组件?@AlexanderKim-当您从样式化组件导入样式化组件时;你在做三件事:1。使样式化组件成为模块的依赖项。2.如果尚未加载样式化组件,则触发其加载。3.将其默认导出指定给标识符样式。只有当您需要在该模块的组件中使用样式化时,才需要这样做。在哪里使用组件并不重要。关键在于组件是否需要使用该标识符。如果组件的代码中没有styled,它就不需要它了。@AlexanderKim-我不认为Vue vs.React包含在其中。这是关于JavaScript模块如何工作的。我了解JS模块如何工作。我的意思是:,Vue有一个全局使用库的方法,您只需导入一个条目文件并启动Vue.useimportedLibrary。我在React中寻找相同的组件,但似乎没有类似的组件。>只有在组件都在各自的模块中定义的情况下。例如,如果我有一个父组件,那么我在其中使用Child1、Child2、Child3组件,那么我就不需要在childs中导入样式化组件?@AlexanderKim-当您从样式化组件导入样式化组件时;你在做三件事:1。使样式化组件成为模块的依赖项。2.如果尚未加载样式化组件,则触发其加载。3.将其默认导出指定给标识符样式。只有当您需要在该模块的组件中使用样式化时,才需要这样做。在哪里使用组件并不重要。关键在于组件是否需要使用该标识符。如果组件的代码中没有styled,它就不需要它了。@AlexanderKim-我不认为Vue vs.React包含在其中。这是关于JavaScript模块如何工作的。我了解JS模块如何工作。我的意思是:,Vue有一个全局使用库的方法,您只需导入一个条目文件并启动Vue.useimportedLibrary。我想在React中找到同样的,但是 看起来,没有什么与之类似的。