Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React中全局共享库?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在React中全局共享库?

Javascript 如何在React中全局共享库?,javascript,reactjs,Javascript,Reactjs,例如,有一个样式化的组件库,如果我想在10个组件中使用它,我必须导入10次呢?还是说HOC是唯一的解决方法 我在ExampleComponent中这样做: import styled from 'styled-components`; 然后我就可以使用它了,我需要一个带有HOC方法的例子或者更好的例子 。。。我要进口10次 只有当组件都在它们自己的模块中定义,并且它们都需要使用样式化的组件时。每个模块必须导入一次,而不是每个组件导入一次。没有要求每个组件都在自己的模块中编写,这样做与否取决于风

例如,有一个样式化的组件库,如果我想在10个组件中使用它,我必须导入10次呢?还是说HOC是唯一的解决方法

我在ExampleComponent中这样做:

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中找到同样的,但是 看起来,没有什么与之类似的。