【发布时间】:2019-06-21 16:58:33
【问题描述】:
有没有办法将 React 组件导出为函数,并将 props 作为非 React 项目中函数的参数传入?
我最近用 create-react-app 完成了一个 react 项目。现在我想将它用于其他非反应项目(纯 Javascript + html、Angular 等)。
但是,由于这些项目不能只使用 React 方式的组件(组合)。我想知道我们是否可以将 react 组件导出为函数,这样我们就可以在不同的项目中使用它,而不必担心 react 的架构师。
例如:
export default class MyComponent extends React.Component{
render(){
return(
<div>
{"Hello World" + this.prop.name}
</div>
)
}
}
然后将其导出为函数。所以在非反应项目中,我可以这样做:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Non-React App</title>
</head>
<script src="https://mydisk/ImportMyReact.js" ></script>
<script>
MyComponent("Jake")
</script>
<body>
</body>
</html>
我尝试使用 webpack 打包它,但我没有运气,因为 bundle.js 是一段巨大的代码,我不能只从中导入某些函数。
【问题讨论】:
-
您将构建作为 UMD 模块。
-
@epascarello 这就是我用 Webpack 尝试过的。没有运气。我不想将它发布到 npm,因为我的其他项目不使用节点(ASP.MVC)。在不将其发布到 npm 的情况下还有其他选择吗?
-
@JaredSmith 我确实研究了功能组件等。这没有帮助,因为我的组件实际上需要是一个类,因为我正在使用生命周期方法。
-
我相信你可能需要 WebComponent 作为适配器层。看看npmjs.com/package/react-web-component
标签: javascript reactjs