跳转到内容
Go back

mpa以及spa

Edit page

第一个问题:Spring Boot 后端是否不需要 HTML 页面?

是的,如果你的项目是前后端分离的,Spring Boot 只提供 API,前端(如 Vue、React)渲染页面,那么 后端是不需要提供 HTML 页面 的。

💡 示例:Spring Boot 仅提供 API

@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping
    public List<User> getUsers() {
        return userService.getAllUsers();
    }
}

前端 Vue 调用:

axios.get('/api/users').then(response => {
    console.log(response.data);
});

总结


第二个问题:Vue 是否应该公用一个页面(如 bar)?

是的,在 Vue 这样的前端框架中,通常所有页面都会复用同一个布局,只是局部内容发生变化,比如:

Vue 中的标准做法

在 Vue 里,不会为每个页面创建一个独立的 HTML,而是用一个 App.vue 作为整体框架,然后在 <router-view /> 里动态加载不同的组件。

💡 示例:公用一个页面

<!-- App.vue -->
<template>
  <div>
    <NavBar />   <!-- 头部导航栏 -->
    <router-view />  <!-- 这里会动态切换不同的页面组件 -->
    <Footer />   <!-- 底部 -->
  </div>
</template>

<script>
import NavBar from './components/NavBar.vue';
import Footer from './components/Footer.vue';

export default {
  components: { NavBar, Footer }
};
</script>

💡 路由配置

import { createRouter, createWebHistory } from 'vue-router';
import HomePage from '@/views/HomePage.vue';
import AboutPage from '@/views/AboutPage.vue';

const routes = [
  { path: '/', component: HomePage },
  { path: '/about', component: AboutPage }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

效果:


你的疑惑:Thymeleaf 需要每个页面复制 HTML,Vue 不需要,为什么?

因为:

  1. Thymeleaf 主要用于 SSR(服务器端渲染)

    ,每次请求都需要后端生成新的 HTML 页面。

    • 你用 Thymeleaf 时,通常是每个页面都要有自己的 HTML 文件,所以你可能会复制页面结构。
  2. Vue 是 SPA(单页应用),公用一个 HTML 结构

    ,只修改

    router-view

    里的内容。

    • Vue 只下载一次 index.html,然后根据 router-view 变化动态更新页面,而不会刷新整个 HTML

总结

Spring Boot + Vue 的前后端分离,后端只提供 API,前端(Vue)渲染页面,不需要 Thymeleaf。 ✅ Vue 通常用 router-view 实现页面切换,而不是创建多个 HTML 文件。 ✅ Thymeleaf 是服务器端渲染 (SSR),Vue 是前端渲染 (SPA),两者逻辑不同,所以 Vue 里不需要复制多个 HTML 页面,而是公用一个 App.vue 框架。

MPASPA 是前端架构的两种不同方式:

  1. MPA(Multi-Page Application,多页应用)

  2. SPA(Single-Page Application,单页应用)

  3. MPA vs SPA

    对比项MPA(多页应用)SPA(单页应用)
    页面跳转需要重新加载页面只更新部分页面
    服务器渲染服务器返回完整 HTML服务器返回 JSON,前端渲染
    SEO 友好性非常友好需要 SSR 处理
    适合场景传统网站(博客、新闻)Web 应用(后台管理系统、社交平台)


Edit page
Share this post on:

Previous Post
py-m install -r的用法-20250308
Next Post
大片播放为什么呈现得“毫不费力”?