javascript - 在我的 html 文件中需要 React 组件

标签 javascript html node.js reactjs

我已经使用express 设置了一个node.js 服务器,并且正在渲染一个包含jsx 代码的html 页面。一切都工作正常,除了我不知道如何在我的 html 文件中导入其他 jsx 组件以在我的主脚本中使用它们。

我尝试过类似的方法

<script type="text/babel" src="./Modulo.jsx" />

但是我收到错误 GET http://localhost:5000/Modulo.jsx

error

这是我的 Modulo.jsx 的内容

var Modulo = React.createClass({
  render: function() {
    return(
      <h1>Hello</h1>
    )
  }
}); 

这是我的主模块index.js

var express = require('express');
var React = require('react');
var app = express();

var server = require('http').Server(app);
var swig = require('swig');
var path = require('path');

app.engine('html', swig.renderFile);
app.set('view engine', 'html');

server.listen(5000);
app.get('/', function (req, res) {
   res.render('ModuleScreen');
});

ModuleScreen 是一个简单的 html 文件,我尝试在其中导入 Modulo.jsx

最佳答案

听起来您还没有设置 Express 来提供静态文件,您的设置中应该有类似以下内容:

app.use(express.static(path.join(__dirname, 'public')));

这会将 public 目录中的所有内容作为静态资源提供,这正是您的 script 标记所需要的。


但是,您通常不会将其他 jsx 模块直接导入到 HTML 中,而应该使用以下内容将其导入到主包中:

var Modulo = require('./Modulo.jsx');

但您还需要将以下行放在 Modulo.jsx 文件的底部:

module.exports = Modulo

还有其他方法可以导入/需要模块,但这可能是正确的方法。如果您需要更多帮助,请使用您的主模块以及更多 HTML 和构建过程(包括如果您在浏览器中构建它)更新您的答案。

关于javascript - 在我的 html 文件中需要 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166685/

相关文章:

javascript - 修改键值对Javascript中的字符串

javascript - 我如何使用 JS 将 blob 对象显示为图像

Javascript模态窗口调用函数-bootstrap UI

css - 将 <img> 下推其高度的 50% 仍然影响流量

node.js - 需要 Electron 中 "client-side"JS 中的相对路径

javascript - 如何将 Angular 4 与现有 Express 项目结合使用

javascript - 使用 Node JS 进行字符串操作

javascript - Google maps API V3 - 在完全相同的地方有多个标记

html - 为什么 margin 0 auto 不居中,即使有规定的宽度?

javascript - 未调用express.js 中的自定义错误处理程序