【发布时间】:2017-05-29 12:04:32
【问题描述】:
我正在尝试学习 ReactJS,但我发现很多教程令人困惑,因为它们同时将 NodeJS、Babel 和 Webpack 分层到他们的解释中,并且掩盖了很多正在发生的事情。我正在尝试做一个基本的 Hello World 应用程序,并一次添加一个这些工具,这样我就可以了解哪些方面做得更好。
我从一个基本的静态 HTML 和 JS 文件开始:
index.html:
<!DOCTYPE html>
<html>
<body>
<div id="app"></div>
<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
<script src="index.js"></script>
</body>
</html>
index.js(还没有使用 JSX):
class Hello extends React.Component {
render() {
return React.createElement('div', null, `Hello ${this.props.toWhat}`);
}
}
ReactDOM.render(
React.createElement(Hello, {toWhat: 'World'}, null),
document.getElementById('app')
);
好的,所以这按预期工作。现在我想建立一个 NodeJS 项目来提供这个确切的内容,所以我开始:
npm init -y
这给了我一个 package.json。如何配置 NodeJS 以在 localhost:8080 上提供这个基本的 Hello World 代码?我的下一步是添加 Babel,以便我可以使用 JSX,但在我更好地了解服务器设置之前,我不想跳到这一步。
【问题讨论】:
-
您需要实际运行一个服务器。 github.com/indexzero/http-server 是一个简单的解决方案,您只需在您的目录中运行,它将提供静态文件。或者如果你有 python,你可以运行
python -m SimpleHTTPServer -
为什么需要服务器? react.js 不只是一个库吗?我查看了 (facebook.github.io/react/docs/installation.html) 上的基本设置说明,但没有看到任何提及 node.js 的内容。如果你不编译任何东西,我认为 webpack+babel 也应该是可选的。
-
嗯,它是可选的。我的上述设置不使用服务器。但是,我最终会想用一些东西来部署它,并且我确实想使用 Babel,这样我就可以使用 JSX。我的理解是生产级的 React 应用程序使用了这些工具中的大部分,而这正是我想要学习的。我只是试着一次学习一个,这样我就可以理解每个人在做什么。
-
@CaptainStack 你曾经使用节点创建应用程序吗?
-
@CaptainStack stackoverflow.com/a/4720770/5992765 用节点加载你的 index.html
标签: javascript node.js reactjs