Web前端开发路径
从网页制作到现代前端工程
前端技术栈
基础三件套
├── HTML (结构)
├── CSS (样式)
└── JavaScript (交互)
现代框架
├── React
├── Vue
└── Angular
构建工具
├── Webpack / Vite
├── npm / yarn
└── Babel / TypeScript
HTML基础
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的网页</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<nav>
<a href="/">首页</a>
<a href="/about">关于</a>
</nav>
</header>
<main>
<h1>欢迎来到我的网站</h1>
<p>这是一个段落。</p>
<button id="myBtn">点击我</button>
</main>
<footer>
<p>© 2024 版权所有</p>
</footer>
<script src="app.js"></script>
</body>
</html>
CSS基础
/* 基础样式 */
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
margin: 0;
padding: 0;
line-height: 1.6;
}
/* Flexbox布局 */
.container {
display: flex;
justify-content: center;
align-items: center;
gap: 20px;
}
/* Grid布局 */
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
/* 响应式设计 */
@media (max-width: 768px) {
.grid {
grid-template-columns: 1fr;
}
}
/* 动画 */
.button {
transition: all 0.3s ease;
}
.button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
JavaScript交互
// DOM操作
const button = document.getElementById('myBtn');
const list = document.querySelector('.list');
button.addEventListener('click', () => {
alert('按钮被点击了!');
});
// 动态添加元素
function addItem(text) {
const li = document.createElement('li');
li.textContent = text;
list.appendChild(li);
}
// Fetch API
async function fetchData() {
try {
const response = await fetch('/api/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('请求失败:', error);
}
}
// ES6+特性
const users = [
{ name: '张三', age: 25 },
{ name: '李四', age: 30 }
];
// 解构赋值
const [first, second] = users;
const { name, age } = first;
// 箭头函数与数组方法
const names = users.map(u => u.name);
const adults = users.filter(u => u.age >= 18);
现代框架:Vue入门
// Vue 3组合式API
<template>
<div>
<h1>{{ count }}</h1>
<button @click="increment">+1</button>
<ul>
<li v-for="item in items" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
<script setup>
import { ref, reactive, computed } from 'vue'
const count = ref(0)
const items = reactive([
{ id: 1, name: '项目1' },
{ id: 2, name: '项目2' }
])
const increment = () => {
count.value++
}
const doubleCount = computed(() => count.value * 2)
</script>
学习路线图
第1阶段:基础 (2-3个月)
├── HTML5语义化标签
├── CSS3布局与动画
├── JavaScript ES6+
└── 响应式设计
第2阶段:进阶 (2-3个月)
├── 选择一个框架 (Vue/React)
├── 状态管理
├── 路由
└── 组件化开发
第3阶段:工程化 (1-2个月)
├── TypeScript
├── 构建工具 (Vite)
├── 代码规范 (ESLint)
└── 单元测试
第4阶段:专业化 (持续)
├── 性能优化
├── SSR/SSG
├── 微前端
└── 移动端适配
本章小结
- HTML:网页结构与语义化
- CSS:样式与布局
- JavaScript:交互与逻辑
- 框架:Vue/React提升效率
→ 继续阅读:36-Web后端开发路径