从单独的js文件添加反应不起作用

问题描述 投票:0回答:2

我正在关注https://reactjs.org/docs/add-react-to-a-website.html#optional-try-react-with-jsx上的'Add React to a Website'指南,但由于某些原因它似乎无法正常工作。

代码不起作用:

index.html的:

    <html>
    <head>

    <!-- Load React -->
    <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

    <!-- Load React component. -->
    <script src="test.js"></script>

    </head>

    <body>

    <div id="root"></div>

    </body>

    </html>

test.js:

    ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById('root')
    );

上面的代码将生成一个空白页面但是当我在index.html页面上添加react代码时,如下所示:

   <script>
    ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById('root')
    );
   </script>

它确实有效。

我试图替换

    <script src="test.js"></script>

    <script src="/test.js"></script>

    <script src="./test.js"></script>

但那仍然行不通。

此外,当我检查空白页面上的元素时,它确实显示它加载test.js

有人可以告诉我我做错了什么吗?

reactjs
2个回答
1
投票

正如the guide所说:

现在,您可以在任何<script>标记中使用JSX,方法是添加type="text/babel"属性。

所以你需要<script src="test.js" type="text/babel"></script>


1
投票

即使你可以通过使用React.creatEelement API而不添加文本/ babel来实现它,这是由redux的作者和Reactjs核心团队的一部分作者Dan Abramov推荐的。

这是工作代码框:React with no build config

© www.soinside.com 2019 - 2024. All rights reserved.