React JS是否需要节点js和JSX

时间:2017-03-28 07:36:00

标签: reactjs

我们选择了反应JS 0.14.8作为前端,因为它支持IE 8浏览器但是Node JS或JSX是React JS开发所必需的,或者我们可以创建没有Node JS或Jsx的组件

4 个答案:

答案 0 :(得分:9)

是的,您可以创建没有nodejs和jsx的ReactJs应用程序。

但为什么要使用JSX?

JSX提供了一种非常简洁的方式来声明您的UI组件。 您可以使用熟悉的html语法来声明用户界面。 JSX被转换并转换为代表ui元素的轻量级对象。 例如 您可以使用以下方式通过

声明react js

1.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)

React JS需要节点j吗?

让我将答案分为两部分:

生产中:

服务器端:除非您使用Node.js创建Web服务器并为ReactJS文件提供服务,否则不需要。

客户端:只有浏览器就足够了。

在开发中:

服务器端:需要使用NPM下载反应库和其他依赖项。 webpack需要创建生产包。

客户端:只有浏览器就足够了。

React JS需要JSX吗?

如果使用JSX(javascript + XML标记),开发人员可以直接在javascript中使用HTML标记。否则就很难编写代码以及理解代码。

希望这个答案有所帮助,谢谢