详解Vue.js Mixins 混入使用


Posted in Javascript onSeptember 15, 2017

Mixins一般有两种用途:

1、在你已经写好了构造器后,需要增加方法或者临时的活动时使用的方法,这时用混入会减少源代码的污染。

2、很多地方都会用到的公用方法,用混入的方法可以减少代码量,实现代码重用。

一、Mixins的基本用法

我们现在有个数字点击递增的程序,假设已经完成了,这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”.

代码实现过程:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script type="text/javascript" src="../assets/js/vue.js"></script>
  <title>Mixins Option Demo</title>
</head>
<body>
  <h1>Mixins Option Demo</h1>
  <hr>
  <div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
  </div>
 
  <script type="text/javascript">
    //额外临时加入时,用于显示日志
    var addLog={
      updated:function(){
        console.log("数据放生变化,变化成"+this.num+".");
      }
    }
    var app=new Vue({
      el:'#app',
      data:{
        num:1
      },
      methods:{
        add:function(){
          this.num++;
        }
      },
      mixins:[addLog]//混入
    })
  </script>
</body>
</html>

二、mixins的调用顺序

从执行的先后顺序来说,都是混入的先执行,然后构造器里的再执行,需要注意的是,这并不是方法的覆盖,而是被执行了两边。

在上边的代码的构造器里我们也加入了updated的钩子函数:

updated:function(){


   console.log("构造器里的updated方法。")


},

这时控制台输出的顺序是:

mixins数据放生变化,变化成2.
构造器里的updated方法。

PS:当混入方法和构造器的方法重名时,混入的方法无法展现,也就是不起作用。

三、全局API混入方式

我们也可以定义全局的混入,这样在需要这段代码的地方直接引入js,就可以拥有这个功能了。我们来看一下全局混入的方法:

Vue.mixin({


  updated:function(){


    console.log('我是全局被混入的');


  }


})

PS:全局混入的执行顺序要前于混入和构造器里的方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
自己编写的类似JS的trim方法
Oct 09 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
jQuery实现的进度条效果
Jul 15 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
基于jquery实现智能表单验证操作
May 09 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
JavaScript两种计时器的实例讲解
Jan 31 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
Aug 06 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
Sep 15 #Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 #Javascript
vue实现登陆登出的实现示例
Sep 15 #Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 #Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 #jQuery
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 #Javascript
vue用addRoutes实现动态路由的示例
Sep 15 #Javascript
You might like
PHP的简易冒泡法代码分享
2012/08/28 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php扩展开发入门demo示例
2019/09/23 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
利用Python实现kNN算法的代码
2019/08/16 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
大学学习生活感言
2014/01/18 职场文书
大学生求职计划书
2014/04/30 职场文书
文明礼仪标语
2014/06/13 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
学校少先队工作总结
2015/08/12 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
python运行脚本文件的三种方法实例
2022/06/25 Python