gpt4 book ai didi

javascript - 将 React 组件拆分为多个文件

转载 作者:可可西里 更新时间:2023-11-01 13:26:16 26 4
gpt4 key购买 nike

我学习 React 才一周时间,所以我是新手,我正在尝试编写一个简单的待办事项应用。

最初我将所有组件写在一个文件中,然后将该文件加载到 HTML 文件中,效果很好。现在我正在重构并尝试将组件拆分到不同的文件中。

我的完整代码在我的 Github 上 https://github.com/yasgreen93/todolist-reactextracting-files 分支上。

我已将每个组件拆分成不同的文件,并在脚本标签中将它们链接到我的 HTML 中。这是我的 HTML 文件的样子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Todo List</title>
<link rel="stylesheet" href="css/styles.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.16/browser.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
</head>

<body>
<div id="container"></div>
<script type="text/babel" src="scripts/components/TodoListApp.js"> </script>
<script type="text/babel" src="scripts/components/CompleteTodo.js"></script>
<script type="text/babel" src="scripts/components/TodoList.js"></script>
<script type="text/babel" src="scripts/components/SingleTodo.js"></script>
<script type="text/babel" src="scripts/components/AddTodo.js"></script>
<script type="text/babel" src="scripts/components/CompleteTodoButton.js"></script>

<script type="text/babel">
ReactDOM.render(
<TodoListApp url="/api/todos" updateUrl="/api/todos/update" pollInterval={2000}/>,
document.getElementById('container')
);
</script>
</body>
</html>

在控制台中,我总是收到错误消息 Uncaught ReferenceError: TodoListApp is not defined。我试过以不同的顺序加载它们,但没有成功。我也看过很多视频,他们在不使用 webpack 的情况下采用非常相似的方法,并且对他们有效。我想在不使用 webpack 的情况下先让它工作,然后继续学习它。

谁能看出我哪里出错了?

最佳答案

您必须将组件添加到全局 window 变量,以便在 html script 标记中使用它们。像 window.TodoListApp =...var 声明是相对于您在其中声明它的文件。

但是将部分代码公开到全局范围并在浏览器中转换 JSX 被认为是一种不好的做法。相反,您应该考虑使用一些构建系统,例如 Webpack .

这样你就可以使用es2015 import syntax将组件从一个文件导入到另一个文件,将所有内容捆绑在一个文件中,以及更多其他好处,如代码缩小、源映射、livereload 等。

Setting up React for ES6 with Webpack and Babel

Using React with Webpack Tutorial

关于javascript - 将 React 组件拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com