你好世界不起作用

时间:2017-02-08 11:24:52

标签: javascript html reactjs

[更新:]

  1. 所以你需要Babel https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js
  2. React改变了它的API并且应该使用ReactDom - > See this post
  3. 所以我试着反应一下,或者我在兔子洞的距离太远,但是我看起来无法想象,而非常简单的页面只是没有加载和工作..

    我刚刚react_hello.html

    <html>
    <head>
    <meta charset="UTF-8">
    <title>Title of the document</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script src="https://unpkg.com/react@15/dist/react.js"></script>
        <script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
    </head>
    <div id="root">
    <body>
        <script type="text/babel">
        console.log("A");
            var ExampleElement = React.createClass({
                render : function() 
                { 
                    return (<p>Testing 123</p>);
                };
            });
            React.render(<ExampleElement/>, document.getElementById('root'));
        </script>
    </body>
    </html>
    

    它在Chrome和Firefox中都不起作用,我看到一个空白页面并在控制台中显示:

      

    下载React DevTools并使用HTTP服务器(而不是文件:URL)获得更好的开发体验:https://fb_dot_me_url_blocked/react-devtools

    当然,我可以下载开发工具,但我不想,因为我想了解它的工作原理。为什么我没有看到教程指向如何设置页面的基本思路!甚至https://facebook.github.io/react/也使用了codepen。

2 个答案:

答案 0 :(得分:1)

ReactDOM.render(<ExampleElement/>, document.getElementById('root'));

答案 1 :(得分:1)

因为您在<div id="root"之外定义了此body。 试试这个:

<html>
   <head>
      <meta charset="UTF-8">
      <title>Title of the document</title>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
      <script src="https://unpkg.com/react@15/dist/react.js"></script>
      <script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
  </head>
  <body>
      <div id="root"/>
      <script type="text/babel">
         console.log("A");
         var ExampleElement = React.createClass({
            render : function() 
            { 
                return (<p>Testing 123</p>);
            };
         });
         ReactDOM.render(<ExampleElement/>, document.getElementById('root'));
      </script>
  </body>
</html>

另一个变化是,您需要使用ReactDOM.render而不是React.render,请检查这两者之间的区别:Is there any difference between React.render() and ReactDOM.render()?