使用 Babel Standalone 仅使用 index.html 和组件进行单个 React 组件渲染

Single React Component rendering with Babel Standalone with only index.html and Component

这里是 React 新手。我正在玩 React。我有一个简单的组件要在我的 component.js 中渲染。它包含在我的 index.html 文件中。我在 head 中包含了 ReactReactDOMbabel 的脚本。我只想看到 div 正确渲染。我还没有使用 Node,只是使用 React 和 Babel 进行练习(使用 babel-standalone)。我是 运行 带有简单 http-server 的文件。我在使用 React Chrome 扩展时遇到错误:Waiting for roots to load...to reload inspector click here.

index.html

<!DOCTYPE html>
<html>
  <head>
    <!-- React -->
    <script src="https://unpkg.com/react@15/dist/react.min.js"></script>
    <!-- React DOM -->
    <script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
    <!-- babel core-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script>
  </head>
  <body>
    <div id="machine-box"></div>
    <script type="text/babel" src="components.js"></script>
  </body>
</html>`

components.js

class MachineBox extends React.Component {
 render(){
   return ( <div>Hello From React </div> );
 }
}

let target =  document.getElementById('machine-box');

ReactDOM.render(
 <MachineBox />, target
)

您的代码没有问题,不过您使用的是 babel-standalone 的非常旧的版本。

// this
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script>

// should be this
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.17.0/babel.min.js"></script>

<script type="text/babel" src="components.js"></script>

// should be
<script type="text/babel" src="components.js" data-presets="es2015,react"></script>