vue修改网站标题title的三种方法

本文介绍了在Vue.js项目中更改网站标题的三种方法:一是通过创建Vue.directive全局指令;二是利用路由的beforeEach导航守卫设置meta信息;三是安装vue-wechat-title插件并进行配置使用。

方法一

  调用Vue.directive()

1.main.js里面添加一个全局指令

Vue.directive('title', {
  inserted: function (el, binding) {
    document.title = el.dataset.title
  }
})

2.调用的组件里面,随便找一个div加入,v-title data-title="你的标题"

<template>
    <div v-title data-title="标题">
     ......
    </div>
</template>

方法二

利用路由的导航守卫beforeEach在每次页面跳转前更改对应的title

1.router中给每个路由加上meta属性

{
            path: '/login',
            name: 'login',
            component(resolve) {
                require(['./views/login.vue'], resolve)
            },
            meta: {
                title: '登录页',
                keepAlive: true, // 需要被缓存
            }
}

2.在main.js里面加上导航守卫

router.beforeEach((to, from, next) => {
    //路由发生改变时,触发
    window.document.title = to.meta.title == undefined ? '默认标题' : to.meta.title
    if (to.meta.requireAuth) {        
        let token = Cookies.get('access_token');        
        let anonymous = Cookies.get('user_name');        
        if (token) {                             
             next({                    
                 path: '/login',  
                 query: {       
                     redirect: to.fullPath                    
                 }
             })             
        } 
    }    
    next();
})

方法三

1.安装插件 npm install vue-wechat-title  --save

2.引入插件,main.js中import

import VueWechatTitle from 'vue-wechat-title'
Vue.use(VueWechatTitle)

3.路由配置文件router.js里面配置的页面标题

routers: [{
    path: '/',
    name: 'index',
    component: Index,
    meta: {
        title: 'title'
    }
}]

4.app.vue里面添加指令v-wechat-title即可


<!-- 任意元素中加 v-wechat-title 指令 建议将标题放在 route 对应meta对象的定义中 --><div v-wechat-title="$route.meta.title"></div>
<!--或者-->
<router-view v-wechat-title="$route.meta.title"></router-view>
//来自官方npm页面

 

Vue中设置页面标题可以通过两种方式:使用Vue Router和直接操作文档对象。 1. 使用Vue Router: 在Vue Router中,可以在路由配置中设置页面的标题。首先,确保安装了Vue Router,并在Vue应用中引入和使用它。然后,在每个路由对象的meta字段中添加一个名为title的属性,该属性将作为页面标题。例如: ```javascript const router = new VueRouter({ routes: [ { path: '/home', name: 'Home', component: Home, meta: { title: '首页' // 设置页面标题为"首页" } }, // 其他路由配置... ] }) router.beforeEach((to, from, next) => { if (to.meta.title) { document.title = to.meta.title; // 将页面标题设置为路由对象的meta字段中的title属性 } next(); }) ``` 在上面的例子中,每次切换路由时,路由钩子函数beforeEach会被调用。在该钩子函数中,可以通过to.meta.title获取当前路由对象的标题,并将其赋值给document.title,从而改变页面的标题。 2. 直接操作文档对象: 如果不使用Vue Router,也可以直接操作文档对象来设置页面标题。在Vue组件的生命周期钩子函数中,通过修改document.title来改变页面的标题。例如,在组件的created钩子函数中设置页面标题: ```javascript export default { created() { document.title = '页面标题'; // 设置页面标题为"页面标题" } // 其他组件配置... } ``` 以上是两种常用的设置Vue页面标题的方式。根据你的实际情况选择适合的方式来设置页面标题
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值