vue动态设置页面title的方法实例

(编辑:jimmy 日期: 2024/11/15 浏览:2)

本文主要介绍了Vue动态修改title的方法,需要的朋友可以参考学习,方法如下:

1.通过自定义指令去修改(单个修改比较好)

//1.在main.js 页面里添加自定义指令
Vue.directive('title', {//单个修改标题
 inserted: function (el, binding) {
 document.title = el.dataset.title
 }
})
//2.在需要修改的页面里添加v-title 指令
<div v-title data-title="我是新的标题"></div>.

2.使用插件 vue-wechat-title

//1.安装插件
npm vue-wechat-title --save
//2.在main.js里面引入插件
import VueWechatTitle from 'vue-wechat-title'//动态修改title
Vue.use(VueWechatTitle)
//3.在路由里面 添加title
   routes: [{
   path: '/login',
   component: Login,
   meta: {
    title: '登录'
   }
  }, {
   path: '/home',
   component: Home,
   meta: {
    title: '首页'
   }
  },]

//4.在app.vue 中添加 指令 v-wechat-title
<router-view v-wechat-title='$route.meta.title' />

3.通过 router.beforeEach 导航守卫来修改

//1.在router的index里写自己的路径和title
const router = new Router({
 routes: [
  {
   path: '/login',
   component: Login,
   meta: {
    title: '登录',
   },
  },
  {
   path: '/home',
   component: Home,
   meta: {
    title: '首页',
   },
  },
 ],
})
//2.使用router.beforeEach对路由进行遍历,设置title
router.beforeEach((to, from, next) => {
 //beforeEach是router的钩子函数,在进入路由前执行
 if (to.meta.title) {
  //判断是否有标题
  console.log(to.meta.title)
  document.title = to.meta.title
 } else {
  document.title = '默认title'
 }
 next()
})

4.使用 vue-mate 修改 title

https://github.com/declandewet/vue-meta 文档中比较详细地说明了在浏览器端和服务器端如何使用 vue-meta 修改页面头部信息

总结