概览:选择哪种模板?
- 初学者 / 个人项目 / 静态展示:选择 基础 HTML/CSS/JS 模板,它让你理解网页工作的基本原理。
- 中小型项目 / 需要交互和状态管理:选择 前端框架模板(如 Vue, React),它们提供了组件化、路由和状态管理等强大功能。
- 大型项目 / 企业级应用 / 全栈开发:选择 全栈框架模板(如 Next.js, Nuxt.js),它们在框架基础上增加了服务端渲染、API 路由等特性。
基础模板:纯 HTML, CSS, JavaScript
这是最原始、最灵活的模板,适合学习或构建非常简单的网站。

(图片来源网络,侵删)
文件结构
my-basic-website/
├── index.html # 网站的主入口
├── css/
│ └── style.css # 所有样式
├── js/
│ └── script.js # 所有交互逻辑
└── assets/
└── images/ # 图片等资源
代码示例
index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">我的基础网站</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<h1>欢迎来到我的网站</h1>
</header>
<main>
<section id="content">
<p>这是一个由纯 HTML, CSS 和 JavaScript 构建的网站。</p>
<button id="myButton">点击我</button>
<p id="message"></p>
</section>
</main>
<footer>
<p>© 2025 我的基础网站</p>
</footer>
<script src="js/script.js"></script>
</body>
</html>
css/style.css
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
color: #333;
}
header {
background-color: #333;
color: white;
text-align: center;
padding: 1rem;
}
main {
padding: 2rem;
max-width: 800px;
margin: auto;
}
button {
padding: 10px 15px;
font-size: 16px;
cursor: pointer;
}
#message {
margin-top: 1rem;
font-weight: bold;
color: #0056b3;
}
js/script.js
// 等待 DOM 完全加载
document.addEventListener('DOMContentLoaded', () => {
// 获取按钮和消息元素
const myButton = document.getElementById('myButton');
const messageParagraph = document.getElementById('message');
// 为按钮添加点击事件监听器
myButton.addEventListener('click', () => {
messageParagraph.textContent = '按钮被点击了!';
});
});
优点:

(图片来源网络,侵删)
- 简单直观,无构建工具依赖。
- 适合直接在浏览器中打开和调试。
- 加载速度快。
缺点:
- 代码组织混乱,页面一多难以维护。
- 缺乏组件化思想,重复代码多。
- 无法使用现代 JavaScript 语法(除非使用 Babel 等工具)。
现代前端框架模板
对于任何具有复杂交互的应用,都应该使用前端框架,它们提供了 组件化、虚拟 DOM、路由 和 状态管理 等核心特性。
这里以 Vue.js 为例,因为它通常被认为更易于上手,React 和 Angular 的思想类似。
核心概念
- 组件:将 UI 拆分成独立的、可复用的部分(如 Header, Footer, Article)。
- 单文件组件:将组件的 HTML (
<template>)、CSS (<style>) 和 JavaScript (<script>) 写在同一个.vue文件中。 - 构建工具:使用 Vite 或 Webpack 来打包代码、处理资源、支持现代 JS 语法。
使用 Vite 创建 Vue 项目
# 1. 创建一个 Vue 项目 npm create vue@latest # 它会提示你输入项目名称、是否使用 TypeScript 等,一路回车即可。 # 2. 进入项目目录并安装依赖 cd <your-project-name> npm install # 3. 启动开发服务器 npm run dev
文件结构
my-vue-project/
├── public/
├── src/
│ ├── assets/ # 图片等资源
│ ├── components/ # 可复用的 Vue 组件
│ │ └── TheHeader.vue
│ ├── views/ # 页面级组件
│ │ └── HomeView.vue
│ ├── App.vue # 根组件
│ ├── main.js # 应用入口文件
│ └── router/ # 路由配置
│ └── index.js
├── index.html # 公共 HTML 模板
├── package.json
└── vite.config.js # Vite 配置文件
代码示例
src/App.vue (根组件)
<template>
<div>
<TheHeader />
<main>
<router-view></router-view> <!-- 路由出口,匹配的页面会在这里渲染 -->
</main>
<TheFooter />
</div>
</template>
<script setup>
// 引入子组件
import TheHeader from './components/TheHeader.vue';
import TheFooter from './components/TheFooter.vue';
</script>
<style scoped>
/* scoped 样式只作用于当前组件 */
main {
padding: 2rem;
max-width: 800px;
margin: auto;
}
</style>
src/components/TheHeader.vue (组件示例)
<template>
<header>
<h1>{{ siteTitle }}</h1>
<nav>
<router-link to="/">首页</router-link> |
<router-link to="/about">lt;/router-link>
</nav>
</header>
</template>
<script setup>
// 定义组件的数据
const siteTitle = '我的 Vue 网站';
</script>
<style scoped>
header {
background-color: #333;
color: white;
padding: 1rem;
}
nav a {
color: white;
text-decoration: none;
margin: 0 10px;
}
</style>
优点:
- 组件化:代码结构清晰,易于维护和复用。
- 声明式渲染:只需告诉 Vue “你想要什么 UI”,它会处理 DOM 的更新。
- 强大的生态系统:有官方路由、状态管理工具 (Pinia/Vuex) 和无数第三方库。
- 开发体验好:热模块替换,修改代码后页面立即更新。
缺点:
- 需要学习框架的概念和 API。
- 引入了构建工具,项目初始化稍复杂。
全栈框架模板
全栈框架是前端框架的“超集”,它们不仅处理前端 UI,还提供了构建后端 API 和页面的能力。
核心概念
- 服务端渲染:在服务器上生成 HTML 字符串再发送给浏览器,有助于 SEO 和首屏加载速度。
- 静态站点生成:在构建时生成所有 HTML 文件,部署时无需服务器。
- API 路由:可以直接在项目中编写 API 端点(
/api/users),无需额外的后端服务。
使用 Vite 创建 Next.js 项目
# 1. 创建一个 Next.js 项目 npx create-next-app@latest # 同样,它会进行一些配置询问。 # 2. 进入项目目录并安装依赖 cd <your-project-name> npm install # 3. 启动开发服务器 npm run dev
文件结构
my-nextjs-project/
├── public/ # 静态资源
├── src/
│ ├── app/ # Next.js 13+ 的 App Router 目录
│ │ ├── layout.js # 根布局
│ │ ├── page.js # 首页
│ │ └── about/ # 路由文件夹
│ │ └── page.js # 关于页面
│ ├── components/ # React 组件
│ └── lib/ # 工具函数等
├── next.config.js # Next.js 配置
└── package.json
代码示例
src/app/page.js (首页)
// 这是一个 React 组件,也是 Next.js 的一个页面
export default function Home() {
return (
<main>
<h1>欢迎来到我的 Next.js 网站</h1>
<p>这是一个使用 App Router 构建的页面。</p>
</main>
);
}
src/app/layout.js (布局)
import './globals.css'; // 全局样式
import Header from '../components/Header'; // 引入公共组件
export const metadata = { '我的 Next.js 网站',
description: '一个使用 Next.js 构建的示例网站',
};
// 这个组件会包裹所有页面
export default function RootLayout({ children }) {
return (
<html lang="zh-CN">
<body>
<Header />
{children} {/* 这里会渲染 page.js 等页面内容 */}
</body>
</html>
);
}
src/app/api/hello/route.js (API 路由示例)
// 这是一个 API 路由,访问 /api/hello 即可调用
export async function GET(request) {
return new Response(JSON.stringify({ message: '你好,世界!' }), {
headers: { 'Content-Type': 'application/json' },
});
}
优点:
- 全栈一体化:前后端代码在同一仓库中,开发流程顺畅。
- 出色的性能:默认支持 SSR 和 SSG,优化了加载速度和 SEO。
- 文件系统路由:通过文件夹和文件名自动定义路由,非常直观。
- 零配置 API:轻松创建后端接口。
缺点:
- 框架更复杂,学习曲线更陡峭。
- 对 React (Next.js) 或 Vue (Nuxt.js) 的依赖性更强。
总结与对比
| 特性 | 基础模板 | 前端框架 (Vue/React) | 全栈框架 (Next.js/Nuxt.js) |
|---|---|---|---|
| 适用场景 | 简单展示、学习、原型 | 交互丰富的单页应用 | 大型应用、电商、博客、需要 SEO 的项目 |
| 核心优势 | 简单、直接、无依赖 | 组件化、生态完善 | 性能、SEO、全栈一体化 |
| 开发效率 | 低(项目大时) | 高 | 极高(全栈场景) |
| 学习成本 | 极低 | 中等 | 较高 |
| 推荐工具 | VS Code | Vite + Vue CLI / Create React App | Vite + Next.js / Nuxt CLI |
如何选择?
- 如果你是新手:从 基础模板 开始,理解网页的构成,然后快速学习 Vue 或 React,它们是现代前端开发的基石。
- 如果你要做一个有用户登录、数据展示、动态交互的网站:直接使用 Vue 或 React 框架。
- 如果你要做的是一个内容网站(博客、官网)或者一个需要搜索引擎优化的电商网站:强烈推荐 Next.js 或 Nuxt.js,它们能帮你省去很多性能和 SEO 上的麻烦。
