封装---统一封装处理页面标题

一.采用工具来实现(setPageTitle.ts)

多个页面中用更统一的方式设置 document.title,可以封装一个工具函数:

在utils目录下新建文件:setPageTitle.ts

如果要在每个页面设置相同的网站标志可以使用下面的appName

TypeScript 复制代码
const appName: string = import.meta.env.VITE_APP_NAME

export function setPageTitle(title: string) {
  if (typeof document !== 'undefined') {
    document.title = `${title} - ${appName}`
  }
}

其中的appName定义在.nev文件中:.nev

TypeScript 复制代码
# 设置名字
VITE_APP_NAME = "DevMentor"

使用时直接导入这个工具使用

二.封装为组件使用

我这里采用svelte框架示例,其他vue,react大差不差

TypeScript 复制代码
<script lang="ts">
  export let title: string
  const appName: string = import.meta.env.VITE_APP_NAME
  const fullTitle: string = `${appName}-${title}`
</script>

<svelte:head>
  <title>{fullTitle}</title>
</svelte:head>

使用:

TypeScript 复制代码
<PageTitle title="用户管理" />

三.在vue中的的路由设置

如果你使用 Vue Router(通常用于多页 SPA),可以这样统一控制标题。

TypeScript 复制代码
{
  path: '/paper/edit',
  name: 'EditPaper',
  component: () => import('@/views/Paper/Edit.vue'),
  meta: {
    title: '编辑试卷'
  }
}

如果需要动态设置:

TypeScript 复制代码
router.beforeEach((to, from, next) => {
  const title = to.meta?.title
  if (title) {
    document.title = `MyAdmin - ${title}`; // 可加前缀
  }
  next();
});

上面两个代码在一个文件中;router/index.ts

相关推荐
大圣编程2 小时前
Java 多维数组详解
java·开发语言
DianSan_ERP5 小时前
电商架构演进:如何在高并发场景下实现多平台API的标准化履约?
运维·前端·网络·安全·架构·自动化
殳翰5 小时前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
落寞的星星5 小时前
这个对象就包含了已经转换好的DFA和各种词法分析器运转所需要的参数。下一步,我们就可以用ScannerInfo对象创建出Scanner对象,请看下面的代码:
开发语言·c#
nothing&nowhere6 小时前
用 Python 做问卷数据清洗:无效样本检测与处理实战
开发语言·python·数据清洗·数据处理·问卷星·问卷星脚本·刷问卷
2601_961593426 小时前
Rust 开发环境配置繁琐?RustRover 开箱即用搞定编码调试
开发语言·后端·macos·rust
HZZD_HZZD7 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
碎_浪8 小时前
给键盘党的英语记忆工具:我做了一款「打字背单词」桌面应用
前端·程序员·ai编程
阿成学长_Cain9 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
多加点辣也没关系9 小时前
JavaScript|第4章:类型转换
开发语言·javascript