业务需求,进入页面的时候,网页有个默认标题,加载的网页内容不同时,标题需要变更. 例:功能授权,功能授权(张三).

Vue下有很多的方式去修改网页标题,这里总结下解决此问题的几种方案:

一、最笨方案

结合业务直接在Vue生命周期函数 created 和 mounted 中,给 document.title赋值。

import axios from 'axios'

export default {

created () {

document.title = '功能授权'

},

mounted() {

axios.get('***').then((d)=>{

document.title = '功能授权('+ d.Name + ')'

})

}

}

二、普通方案,使用Vue-Router的beforeEach拦截

项目中使用了Vue Router,在路由文件 index.js 中给需要的路由添加 title。

routes: [{

path: '/',

name: 'home',

component: () => import('@/pages/home/index'),

meta:{

keepAlive: true

}

},

{

path: '/person/auth,

name: 'personAuth',

component: () => import('@/pages/person/auth),

meta:{

title: '功能授权',

keepAlive: false

}

}

]

在路由的beforeEach 拦截器里处理

router.beforeEach((to, from, next) => {

/* 路由发生变化修改页面title */

if (to.meta.title) {

document.title = to.meta.title

}

})

如果想在页面上依据加载的内容不同再变更title时,请参考方式一的 mounted函数处理逻辑.

三、优雅方案,使用Vue 自定义指令(directive)

如前文所提,页面获取不同数据状态时,需要展示不同的标题。那么我们可以结合vue 自定义指令(directive)可更优雅的处理网页标题的动态更新。

自定义指令 v-web-title的定义

export default {

inserted: function (el, binding) {

const { value } = binding

if (el.dataset.title) { // 方式1,可以给标签的data-title的属性赋值

document.title = el.dataset.title

} else if (value && value.title) { // 方式2,指令传参

document.title = value.title

}

},

update (el, binding, vnode, oldVnode) {

const { value } = binding

if (el.dataset.title) {

document.title = el.dataset.title

} else if (value && value.title) {

document.title = value.title

}

}

}

在页面上使用v-web-title有两种方式

1.给标签 data-title属性赋值

:data-title="textTitle">

import axios from 'axios'

export default {

data(){

return {

textTitle:'功能授权'

}

},

mounted () {

axios.get('***').then((d) => {

this.textTitle = '功能授权(' + d.Name + ')'

})

}

}

2.给指令传参

import axios from 'axios'

export default {

data(){

return {

textTitle:'功能授权'

}

},

mounted () {

axios.get('***').then((d) => {

this.textTitle = '功能授权(' + d.Name + ')'

})

}

}

四、参考

1. vue单页面应用中动态修改title主要介绍使用vue-weachat-title 组件

2.vue.js自定义指令详解 主要介绍自定义指令的钩子函数,以及指令传参等

总结

以上所述是小编给大家介绍的Vue动态修改网页标题的方法及遇到问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

怎么改vue项目的标题_Vue动态修改网页标题的方法及遇到问题相关推荐

  1. Vue 动态修改网页标题和图标

    VUE2: 二.普通方案,使用Vue-Router的beforeEach拦截 routes: [{path: '/',name: 'home',component: () => import(' ...

  2. 微信小程序页面上面的名字怎么改_微信小程序如何动态修改页面标题——已解决...

    微信小程序初始化的标题我们知道实在全局.json文件中设置的,如果修改全局设置中的navigationBarTitleText,我们全部页面的标题都会统一改变: 例如: "navigatio ...

  3. 怎么改vue项目的标题_如何动态修改Vue项目中的页面title

    前言:在项目中,我们有时候需要修改Vue项目中的页面title. 方法有两种,①如果需要动态设置页面的title,可以直接使用document.title:②可以使用router的beforeEach ...

  4. vue动态修改浏览器标题和图标

    项目场景: 在一个功能一致的项目中,要分别部署成两个系统. 问题描述 两个系统名称不一致.标题不一致.logo不一致,又不想单独拉出一套代码(单独拉出后维护成本增加),想要动态改变. 解决方案: 在m ...

  5. vue项目中使用vant时tabbar遮挡页面解决方法

    标题vue项目中使用Vant时tabbar遮挡页面解决方法 单页面使用: 页面底部可以增加一个div,<div style="height: 5rem;"></d ...

  6. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

  7. vue使用v-for循环,动态修改element-ui的el-switch

    在使用element-ui的el-switch中,因为要用v-for循环,一直没有成功,后来仔细查看文档,发现可以这样写 <el-switch v-for="(item, key) i ...

  8. Vue项目部署到云开发前端网页托管|unicloud版

    Vue项目部署到云开发前端网页托管-unicloud版 前言 创建Vue项目  一.检查环境   1.检查`Node`环境   2.检查`Vue`环境  二.创建项目   1.项目创建   2.创建成 ...

  9. vue项目中npm install安装失败,万能解决方法

    vue项目中npm install安装失败,万能解决方法,即更换淘宝镜像,再执行npm install. 具体如下: npm config set registry https://registry. ...

最新文章

  1. 论文参考文献的组织(latex)
  2. leetcode贪心算法题集锦(持续更新中)
  3. 什么是Eureka注册中心
  4. 只要懂得拒绝,哪会有什么狗血感情与莫名其妙的误会
  5. 初创公司股本结构_我如何向初创公司的开发团队添加一些结构-以及从过程中学到的东西
  6. php怎么上传函数,php上传函数怎么封装
  7. k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
  8. Building A New Barn(POJ-3269)
  9. linux静态网络ip dns怎么设置,Linux下如何配置静态IP设置DNS和主机名?
  10. 微信支付宝服务器分布,支付宝微信扫码支付中间件「第二届立创商城电子制作节30强作品」...
  11. idea如何远端调试
  12. java字符串拼接还是格式化_Java中三种字符串的拼接(++ , String.format , StringBuilder.a...
  13. 使用已有流量进行RFC2544测试—信而泰网络测试仪实操
  14. RTL8152网卡Linux驱动,openwrt增加 rtl8150 USB网卡驱动支持
  15. 常见的10种“瓶颈”
  16. 20dbm是多少mw
  17. Linux下如何查看硬盘型号、序列号、缓存 CPU 主板 等信息
  18. pwntcha库的安装依赖
  19. 浙江师范大学c语言函数实验答案,C语言实验浙江师范大学8-2 D阵列+答案.doc
  20. 微贷七年之痒:重线下、追科技、争存量,能否赢未来?

热门文章

  1. momentJs 字符串日期时间转换成date
  2. 从技术细节看美团架构
  3. 如何在JavaScript中使用高阶函数
  4. Python 0基础开发游戏:打地鼠(详细教程)VS code版本
  5. 公文写作素材:工作落实类过渡句50例
  6. McgsPro 运行期限
  7. web前端开发培训学院,教你用CSS清除样式
  8. vue使用动态组件实现TAB切换效果
  9. 超微服务器如何升级微信,局域网升级微信版本
  10. 27、extjs操作用友华表Cell之合并单元格