随着 Web 应用程序的规模不断扩大,跟踪所有数据流变得越来越具有挑战性。哪些代码获取数据,哪些页面使用数据,数据需要在何时何地更新……很容易导致代码混乱,难以维护。尤其是当你需要在应用程序的不同页面之间共享数据时,比如用户数据。*状态管理*的概念一直存在于各种程序中,但随着 Web 应用程序的复杂性不断增加,它现在成为开发过程中需要重点考虑的问题。
注意,这两个 API 仅允许存储[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)。如果你想存储复杂对象,需要使用 [`JSON.stringify()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) 将其序列化为 [JSON](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON) 格式。
现代浏览器提供多种存储机制,每种机制设计用途不同:
✅ 如果你想创建一个不依赖服务器的 Web 应用程序,也可以使用 [`IndexedDB` API](https://developer.mozilla.org/docs/Web/API/IndexedDB_API) 在客户端创建数据库。这个 API 适用于高级用例或需要存储大量数据的情况,因为它使用起来更复杂。
<p>Write a compelling summary that highlights your passion for web development, key achievements, and career goals. This section should give employers insight into your personality and professional approach.</p>
</section>
<section>
<h2>WORK EXPERIENCE</h2>
<divclass="job">
<h3>Job Title</h3>
<pclass="company">Company Name | Start Date – End Date</p>
<ul>
<li>Describe a key accomplishment or responsibility</li>
<li>Highlight specific skills or technologies used</li>
<li>Quantify impact where possible (e.g., "Improved efficiency by 25%")</li>
</ul>
</div>
<divclass="job">
<h3>Previous Job Title</h3>
<pclass="company">Previous Company | Start Date – End Date</p>
<ul>
<li>Focus on transferable skills and achievements</li>
<li>Demonstrate growth and learning progression</li>
<li>Include any leadership or collaboration experiences</li>
</ul>
</div>
</section>
<section>
<h2>PROJECTS</h2>
<divclass="project">
<h3>Project Name</h3>
<p>Brief description of what the project accomplishes and technologies used.</p>
[](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
[](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
这套课程已经准备好了开发环境!你可以选择在 [Codespace](https://github.com/features/codespaces/)(基于浏览器,无需安装的环境)中运行课程,或者在本地电脑上使用文本编辑器如 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)。
### 📋 配置开发环境
本课程已准备好开发环境!开始时,你可选择在 [Codespace](https://github.com/features/codespaces/) 环境运行(基于浏览器,无需安装),或者本地使用文本编辑器如 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 编写代码。
#### 创建你的仓库
为了方便保存你的学习成果,建议你创建自己的仓库副本。点击页面顶部的 **Use this template** 按钮即可。这将在你的GitHub账户中创建一个包含课程副本的新仓库。
建议你创建本仓库的副本以便保存你的作业。点击页面顶部的 **Use this template** 按钮,GitHub 会在你的账号中创建一个带有课程副本的新仓库。
我们推荐使用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 作为编辑器,它还内置了 [终端](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon)。你可以在[这里](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)下载Visual Studio Code。
我们推荐使用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 作为编辑器,它自带集成 [终端](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon)。你可以从这里下载 Visual Studio Code [链接](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)。
1. 将你的仓库克隆到电脑上。点击 **Code** 按钮并复制URL:
1. 将你的仓库克隆到本地。点击 **Code** 按钮,复制仓库 URL:
[CodeSpace](./images/createcodespace.png)
然后,在 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 的 [终端](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) 中运行以下命令,将 `<your-repository-url>` 替换为你刚刚复制的URL:
然后,在 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 中打开 [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) 并运行以下命令,将 `<your-repository-url>` 替换为你刚才复制的 URL:
```bash
git clone <your-repository-url>
```
2. 在Visual Studio Code中打开文件夹。点击 **File** > **Open Folder**,选择你刚刚克隆的文件夹。
2. 在 Visual Studio Code 中打开该文件夹。你可以通过点击 **文件** > **打开文件夹** 并选择你刚克隆的文件夹来完成此操作。
> 推荐的Visual Studio Code扩展:
> 推荐的Visual Studio Code扩展:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - 在Visual Studio Code中预览HTML页面
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - 用于在Visual Studio Code中预览HTML页面
> 🎓 你可以将本课程的前几节课作为 Microsoft Learn 上的[学习路径](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon)学习!
通过确保内容与项目相匹配,学习过程对学生来说更加有趣,知识点的记忆也会增强。我们还编写了几节 JavaScript 基础课程来介绍概念,搭配来自 “[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" 视频教程系列的视频,其中一些作者也参与了本课程的编写。
虽然我们有意避免引入 JavaScript 框架,以便专注于在学习框架之前网页开发者需掌握的基本技能,但完成本课程后学习 Node.js 是一个很好的下一步,可通过另一视频系列“[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)”来实现。
所有课程的 PDF 可在[此处](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf)找到。
## 🎒 其它课程
我们的团队制作了其他课程!赶快看看:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 生成式 AI 系列
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心学习
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
如果你遇到困难或对构建 AI 应用有任何疑问,加入其他学习者和经验丰富开发者的 MCP 讨论。这里是一个支持性的社区,欢迎提问并自由分享知识。
[](https://aka.ms/foundry/discord)
[](https://aka.ms/foundry/forum)