方法一:使用vue-wechat-title插件设置

第一步:安装插件

npm vue-wechat-title --save

第二步:在main.js全局引入、使用插件

import VueWechatTitle from 'vue-wechat-title' //动态修改title
Vue.use(VueWechatTitle);

第三步:在通过路由的mate属性携带title

const routes = [{
        path: '/login',
        component: () =>
            import ('@/views/login'),
        meta: {
            title: '登录'
        }
    },
    {
        path: '/404',
        component: () =>
            import ('@/views/404'),
        meta: {
            title: '错误'
        }
    }]

第四步:在App.vue里面使用插件

<div id="app">
    <router-view v-wechat-title="$route.meta.title" />
  </div>

这样就ok啦,第一种方法是不是很简单

方法二:通过路由导航守卫设置

第一步:跟第一种方法一样,设置mate的title属性

const routes = [{
        path: '/login',
        component: () =>
            import ('@/views/login'),
        meta: {
            title: '登录'
        }
    },
    {
        path: '/404',
        component: () =>
            import ('@/views/404'),
        meta: {
            title: '错误'
        }
    }]

第二步:在路由前置守卫中

router.beforeEach(async(to, form, next) => {
    if (to.meta.title) {
        document.title = to.meta.title
    } else {
        document.title = '9527' //此处写默认的title
    }
  	.....
  	//接下来写正常的路由守卫就可以了
})

这个方法全部在路由里面操作就可以了,好像比第一种更简单哦

方法三:单个修改title(不推荐动态标题使用,推荐统一标题或者单个标题使用)

第一步:在main.js 页面里添加自定义指令

Vue.directive('title', {//单个修改标题
 inserted: function (el, binding) {
 document.title = el.dataset.title
 }
})

第二步:在需要修改的页面里添加v-title 指令

<div v-title data-title="我是标题"></div>

说明一下,方法三在App.vue里面使用v-title,则整个项目的标题都将一样,如果想单个页面使用某个标题,在单个页面使用v-title。

Logo

前往低代码交流专区

更多推荐