基于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 相关文章推荐
Jquery Ajax请求代码(2)
Jan 07 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
Nov 22 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
jquery滚动特效集锦
Jun 03 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
JavaScript正则表达式实例详解
Oct 16 Javascript
ES6扩展运算符的用途实例详解
Aug 20 Javascript
详解VueRouter进阶之导航钩子和路由元信息
Sep 13 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
总结js中的一些兼容性易错的问题
Dec 18 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
函数指针的定义是什么
2016/08/14 面试题
优秀大学生推荐信范文
2013/11/28 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
单位租房协议书样本
2014/10/30 职场文书
房产公证书样本
2015/01/23 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
市场督导岗位职责
2015/04/10 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书