导读:本期聚焦于小伙伴创作的《如何在 Vue.js 中使用 History 路由实现根据路径展示不同内容和保持公共部分不变?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在 Vue.js 中使用 History 路由实现根据路径展示不同内容和保持公共部分不变?》有用,将其分享出去将是对创作者最好的鼓励。

在 Vue.js 项目里,使用 history 模式的路由可以让 URL 看起来像普通的多页站点,不带井号,而且能在切换路径时只更新页面中变化的部分,导航栏、侧边栏等公共结构始终保留。这背后依赖 vue-router 提供的嵌套路由能力和浏览器历史 API。

如何在 Vue.js 中使用 History 路由实现根据路径展示不同内容和保持公共部分不变?

为什么选择 History 路由

默认的 hash 模式以 # 分割路径,虽然兼容性好,但对搜索引擎和用户都不够友好。history 模式利用 HTML5 的 pushState 与 replaceState,让路由路径变成正常的 URL 形式,例如 /user/profile,同时不触发整页刷新。

基础路由配置

首先安装并初始化 vue-router,将模式设为 history,并定义嵌套路由。父路由承载公共布局,children 中的路由对应不同内容区。

import Vue from 'vue';
import VueRouter from 'vue-router';
import Layout from './components/Layout.vue';
import Home from './components/Home.vue';
import About from './components/About.vue';

Vue.use(VueRouter);

const routes = [
  {
    path: '/',
    component: Layout,
    children: [
      { path: '', component: Home },
      { path: 'about', component: About }
    ]
  }
];

const router = new VueRouter({
  mode: 'history',
  routes
});

export default router;

公共布局组件写法

Layout 组件里用 <router-view> 作为子路由出口,外部的结构如头部和底部不会随路由切换重新创建。

<template>
  <div class="app">
    <header>这是公共头部</header>
    <main>
      <router-view></router-view>
    </main>
    <footer>这是公共底部</footer>
  </div>
</template>

<script>
export default {
  name: 'Layout'
};
</script>

内容组件示例

Home 与 About 是纯内容组件,只关心自己区域要展示什么,不需要重复写公共部分。

<template>
  <div>
    <h3>首页内容</h3>
    <p>只有这一块会随路径变化。</p>
  </div>
</template>

服务端 fallback 处理

使用 history 模式后,直接访问或刷新 /about 这类路径时,浏览器会向服务器请求该地址。若服务端未配置,会返回 404。开发环境 vue-cli 已处理,生产环境需让服务器把所有未知路径回退到 index.html。

环境处理方式
开发vue-cli 内置中间件自动 fallback
生产 Nginxtry_files $uri /index.html;

小结

通过 vue-router 的 history 模式加嵌套路由,就能在 Vue.js 中按路径展示不同内容,同时保持公共部分不变。核心是把不变的结构提取为父组件,变化的内容放到 children 路由,并注意生产环境的服务端回退配置。

Vue.jsHistory路由vue-router组件复用嵌套路由修改时间:2026-07-24 23:24:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。