我们选择了反应JS 0.14.8作为前端,因为它支持IE 8浏览器但是Node JS或JSX是React JS开发所必需的,或者我们可以创建没有Node JS或Jsx的组件
答案 0 :(得分:9)
是的,您可以创建没有nodejs和jsx的ReactJs应用程序。
但为什么要使用JSX?
JSX提供了一种非常简洁的方式来声明您的UI组件。 您可以使用熟悉的html语法来声明用户界面。 JSX被转换并转换为代表ui元素的轻量级对象。 例如 您可以使用以下方式通过
声明react js1.jsx
const App = () => {
return (
<div><h1>Welcome to React</h1></div>
);
}
或
2.没有jsx
const App = function App() {
return React.createElement(
"div",
null,
React.createElement(
"h1",
null,
"Welcome to React"
)
);
};
你可以猜出哪一个很容易写。
我为什么要使用nodejs来构建浏览器项目?
在浏览器上运行网站永远不需要nodejs。 但是nodejs生态系统为您提供了数千个npm模块,可以在您的项目中使用,而无需为您的项目重新设计它们。
如果没有nodejs
,您可以使用 cdn providers 并添加<script>
标记来使用任何库。但是通过使用模块捆绑器和静态资产生成器(如 browserify 和 webpack ),您可以直接在Web项目中利用nodejs生态系统的powe(不需要nodejs运行时)环境,而是在浏览器中运行。)
在代码段下方使用<script>
标记可以在没有nodejs的情况下使用reactjs。
const App = () => {
return (
<div><h1>Welcome to React</h1></div>
);
}
ReactDOM.render(<App />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app">
</div>
答案 1 :(得分:1)
他们没有严格的要求;您可以包含对脚本标记的反应并使用React.createElement。
也就是说,几乎每个人都使用node.js进行开发工具并使用jsx。您可以为您的api服务器使用任何语言,但您大多数时间都在开发中使用node.js服务器。
答案 2 :(得分:1)
用法:
require('node-jsx').install()
如果您想使用其他扩展程序,请执行以下操作:
require('node-jsx').install({extension: '.jsx'})
如果您想要使用其他转换(例如CoffeeScript),请执行以下操作:
var coffee = require('coffee-script');
require('node-jsx').install({
extension: '.coffee',
additionalTransform: function(src) {
return coffee.compile(src, {
'bare': true
});
}
});
如果您想使用JSX工具中提供的ES6转换
require('node-jsx').install({harmony: true})
答案 3 :(得分:1)
让我将答案分为两部分:
生产中:
服务器端:除非您使用Node.js创建Web服务器并为ReactJS文件提供服务,否则不需要。
客户端:只有浏览器就足够了。
在开发中:
服务器端:需要使用NPM下载反应库和其他依赖项。 webpack需要创建生产包。
客户端:只有浏览器就足够了。
如果使用JSX(javascript + XML标记),开发人员可以直接在javascript中使用HTML标记。否则就很难编写代码以及理解代码。
希望这个答案有所帮助,谢谢