07.前端框架入门
1. 为什么需要前端框架?
1.1 传统开发的痛点
还记得我们之前用原生JavaScript做的待办事项应用吗?代码是这样的:
1 | // 获取元素 |
问题:
- 需要手动操作DOM(创建元素、更新元素)
- 数据和界面不同步(数据变了,界面不会自动更新)
- 代码重复(每次都要写
createElement、appendChild)
💡 核心问题:
原生JavaScript需要手动管理数据和界面的同步,代码复杂、容易出错。
还记得我们之前用原生JavaScript做的待办事项应用吗?代码是这样的:
1 | // 获取元素 |
问题:
createElement、appendChild)💡 核心问题:
原生JavaScript需要手动管理数据和界面的同步,代码复杂、容易出错。
还记得我们之前做的待办事项应用吗?每次刷新页面,数据就消失了!
生活类比:
想象你在纸上写待办事项:
网页的困境:
💡 核心问题:
网页需要保存数据,让用户下次打开时还能看到。
还记得我们在第四章学的JavaScript基础吗?我们已经学会了DOM操作、事件监听、表单验证。但是,当我们需要处理异步操作(如获取数据、读取文件)时,传统JavaScript会遇到大麻烦。
生活类比:
想象你要做三件事:
传统方式(回调地狱): 1
2
3
4
5
6
7
8
9
10
11// 煮饭
cookRice(function() {
// 炒菜
cookDish(function() {
// 洗碗
washDishes(function() {
console.log('全部完成!');
// 如果还有更多步骤,代码会越来越深,像"地狱"一样
});
});
});
现代方式(async/await): 1
2
3
4
5
6async function makeDinner() {
await cookRice(); // 等待煮饭完成
await cookDish(); // 等待炒菜完成
await washDishes(); // 等待洗碗完成
console.log('全部完成!');
}
💡 关键理解:
现代JavaScript让异步代码看起来像同步代码,更易读、更易维护。
还记得我们之前学的HTML和CSS吗?
实际例子:
只有HTML+CSS的网页(静态,不能交互):
1
2<button>点击我</button>
<!-- 点击按钮,什么都不会发生 -->
加上JavaScript后的网页(动态,可以交互):
1
2
3
4
5
6<button id="myButton">点击我</button>
<script>
document.getElementById('myButton').addEventListener('click', function() {
alert('按钮被点击了!');
});
</script>
💡 关键理解:
HTML负责"内容是什么",CSS负责"内容长什么样",JavaScript负责"内容能做什么"。
还记得我们在第二章学的HTML吗?HTML就像是一张白纸上的文字,告诉你"这里有个标题"、"那里有段文字",但所有的文字都是黑色、同样大小、没有颜色。
Web = 万维网(World Wide Web)
它不是互联网(Internet),而是互联网上的一种服务,就像微信、QQ一样。
生活类比:
你用手机刷抖音 → 抖音App是"客户端"
你用浏览器看网页 → 浏览器是"客户端",Web是背后的信息系统
初高中解析几何关注理论求解,通过代数方法研究几何性质。算法竞赛中的计算几何则面临实际计算问题:
点积与叉积、点线关系、多边形与简单多边形、简单多边形面积、凸包、半平面交。