概览:选择哪种模板?

  • 初学者 / 个人项目 / 静态展示:选择 基础 HTML/CSS/JS 模板,它让你理解网页工作的基本原理。
  • 中小型项目 / 需要交互和状态管理:选择 前端框架模板(如 Vue, React),它们提供了组件化、路由和状态管理等强大功能。
  • 大型项目 / 企业级应用 / 全栈开发:选择 全栈框架模板(如 Next.js, Nuxt.js),它们在框架基础上增加了服务端渲染、API 路由等特性。

基础模板:纯 HTML, CSS, JavaScript

这是最原始、最灵活的模板,适合学习或构建非常简单的网站。

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>&copy; 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网站模板
(图片来源网络,侵删)
  • 简单直观,无构建工具依赖。
  • 适合直接在浏览器中打开和调试。
  • 加载速度快。

缺点

  • 代码组织混乱,页面一多难以维护。
  • 缺乏组件化思想,重复代码多。
  • 无法使用现代 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

如何选择?

  1. 如果你是新手:从 基础模板 开始,理解网页的构成,然后快速学习 VueReact,它们是现代前端开发的基石。
  2. 如果你要做一个有用户登录、数据展示、动态交互的网站:直接使用 VueReact 框架。
  3. 如果你要做的是一个内容网站(博客、官网)或者一个需要搜索引擎优化的电商网站:强烈推荐 Next.jsNuxt.js,它们能帮你省去很多性能和 SEO 上的麻烦。