基于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 相关文章推荐
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
JQuery中DOM事件绑定用法详解
Jun 13 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 Javascript
vue通过过滤器实现数据格式化
Jul 20 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
Phpbean路由转发的php代码
2008/01/10 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
Python执行时间的计算方法小结
2017/03/17 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python 变量的创建过程详解
2019/09/02 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
国际花店:Pickup Flowers
2020/04/10 全球购物
个人求职信范文分享
2014/01/31 职场文书
女娲补天教学反思
2014/02/05 职场文书
倡议书范文格式
2014/05/12 职场文书
2014最新实习证明模板
2014/10/02 职场文书
免职证明样本
2014/10/23 职场文书
教师节表彰会主持词
2015/07/06 职场文书
青年联谊会致辞
2015/07/31 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
聊聊Python String型列表求最值的问题
2022/01/18 Python