基于Vue的SPA动态修改页面title的方法(推荐)


Posted in Javascript onJanuary 02, 2018

最近基于VUE做个SPA手机端web发现动态修改页面标题通过document.title=xxxx 来修改着实蛋疼,而且在IOS的微信端据说没效果。百度发现要针对IOS的微信做点额外的操作,即:创建一个隐藏的Iframe,然后随便加载一个图片文件,然后加载完成移除,这样就能修改页面title了。网上有几种方案:

1,App.Vue里面设置title属性,然后页面title去绑定,所有子组件修改标题就通过 this.$root.data.title=xxxxx;去修改

缺点:App.Vue默认的el只是body的一个DIV,这样干需要绑定整个html

2,通过自定义指令实现

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

调用方法: <div v-title>标题内容</div>

优点:这样自定义程度较大(暂且不讨论IOS微信端是否能修改成功)

缺点:无法满足某些JS方法中修改页面标题的需求,例如页面为一个websocket的页面,收到消息要动态显示页面标题这时候频繁去修改div绑定的text并不恰当

针对网上查到的上面两种方法,我进行了合并,利用vue的插件实现SPA的页面标题修改:

var plugin={};
plugin.install=function(Vue,options){
 Vue.prototype.$title=function(title){
  document.title=title;
  var iframe=document.createElement("iframe");
  iframe.style.display='none';
  iframe.setAttribute('src','/e.png');
  var loadedCallback=()=>{
   iframe.removeEventListener('load',loadedCallback);
   document.body.removeChild(iframe);
  };
  iframe.addEventListener('load',loadedCallback);
  document.body.appendChild(iframe);
 };
};
module.exports=plugin;

调用方法: this.$title('xxxxxx'); 当然你可以替换为一个绑定的变量,然后watch进行实时调整。

ps:Vue Spa切换页面时更改标题

在Vue组件化开发过程中,因为是单页面开发,但是有时候需要页面的title根据情况改变,于是上网查了一下,各种说法花(wo)里(kan)胡(bu)哨(dong), 于是想到一个黑科技 documet.title="xxx";

随便创建一个项目,在独立的模块中,created在钩子函数启动之后document.title='标题'; 但是据说在IOS的微信下是无效的,虽然用苹果机测试过有用,但是想到这样会影响我的代码洁癖。

<script>
export default {
  data(){
    return{
    }
  },
  created(){
    document.title="首页"
  },
}
</script>

于是在github上找到一个好用的东西 vue-wechat-title

通过 npm install vue-wechat-title  安装

引入需要的vue-router与页面需要的组件之后

const router = new VueRouter({
  mode: 'history',
  routes:[
    {
    name: 'index',
    path: '/',
    meta: {
        title: '首页'
     },
     component: index
    },
   {
     name: 'root',
     path: '/root', 
     meta: {
        title: '肉特'
    },
    component: root
    }  
 ]
});
Vue.use(require('vue-wechat-title')); //实例化参数

在组件中顶部添加一段 <div v-wechat-title="$route.meta.title"></div>

即可实现改变title效果。

Javascript 相关文章推荐
各种常用浏览器getBoundingClientRect的解析
May 21 Javascript
jquery入门—选择器实现隔行变色实例代码
Jan 04 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
jQuery中:nth-child选择器用法实例
Dec 31 Javascript
javascript框架设计之种子模块
Jun 23 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
JavaScript实现动态添加Form表单元素的方法示例
Aug 14 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
使用JS中的Replace()方法遇到的问题小结
Oct 20 Javascript
基于vue展开收起动画的示例代码
Jul 05 Javascript
Node.js JSON模块用法实例分析
Jan 04 Javascript
JavaScript实现的拼图算法分析
Feb 13 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 #Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 #Javascript
图片懒加载imgLazyLoading.js使用详解
Sep 15 #Javascript
基于jquery.page.js实现分页效果
Jan 01 #jQuery
jquery实现企业定位式导航效果
Jan 01 #jQuery
jquery实现楼层滚动效果
Jan 01 #jQuery
jquery实现左右轮播切换效果
Jan 01 #jQuery
You might like
PL-880隐藏功能
2021/03/01 无线电
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
php实现学生管理系统
2020/03/21 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
javascript实现计算器功能
2020/03/30 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
详解Python中heapq模块的用法
2016/06/28 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
教育专业自荐书范文
2013/12/17 职场文书
学校校庆演讲稿
2014/05/22 职场文书
团日活动总结报告
2014/06/25 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
个人承诺书格式范文
2015/04/29 职场文书
东京审判观后感
2015/06/01 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
Windows7下FTP搭建图文教程
2022/08/05 Servers