欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue.js项目中管理每个页面的头部标签的两种方法

程序员文章站 2022-07-06 14:47:14
在 vue spa 应用中,如果想要修改 html 的头部标签,如页面的 title ,我们只能去修改 index.html 模板文件,但是这个是全局的修改,如何为每个页面...

在 vue spa 应用中,如果想要修改 html 的头部标签,如页面的 title ,我们只能去修改 index.html 模板文件,但是这个是全局的修改,如何为每个页面都设置不一样的 title 呢?下面介绍两种方法。

使用router.meta

在路由里面配置每个路由的地址:

routes: [
  { /* (首页)默认路由地址 */
    path: '/',
    name: 'entrance',
    component: entrance,
    meta: {
      title: '首页入口'
    }
  },
  { /* 修改昵称 */
    path: '/modifyname/:nickname',
    name: 'modifyname',
    component: modifyname,
    meta: {
      title: '修改昵称'
    }
  }
]

在每一个 meta 里面设置页面的 title 名字,最后在遍历

router.beforeeach((to,from, next) => {
  /* 路由发生变化修改页面title */
  if (to.meta.title) {
   document.title = to.meta.title
  }
  next();
});

这样就为每一个vue 的页面添加了title。

使用vue-meta插件

vue-meta 主要用于管理 hmtl 头部标签,同时也支持 ssr。

vue-meta有以下特点:

  • 在组件内设置 metainfo,便可轻松实现头部标签的管理
  • metainfo 的数据都是响应的,如果数据变化,头部信息会自动更新
  • 支持 ssr

在页面里面增加 metainfo 选项

export default {
 data() {
  return {
   mytitle: '标题'
  }
 },
 metainfo: {
  title: this.title,
  titletemplate: '%s - by - vue-meta',
  htmlattris: {
   lang: 'zh'
  },
  script: ''
 }
 ... ...
}

更多vue-meta使用请参考github官网:

总结

以上所述是小编给大家介绍的vue.js项目中管理每个页面的头部标签的两种方法,希望对大家有所帮助