详解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 相关文章推荐
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
javascript中this做事件参数相关问题解答
Mar 17 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
Jul 27 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
常用的javascript设计模式
Jan 11 Javascript
bootstrap table动态加载数据示例代码
Mar 25 Javascript
深入理解JavaScript 箭头函数
May 30 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 15 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JS跨域总结
2012/08/30 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
Python中实现三目运算的方法
2015/06/21 Python
Python实现的端口扫描功能示例
2018/04/08 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python Paramiko使用示例
2020/09/21 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
一套C#面试题
2013/10/09 面试题
什么是规则表达式
2012/05/03 面试题
Java基础面试题
2012/11/02 面试题
产品质量保证书
2014/04/29 职场文书
道歉情书大全
2015/05/12 职场文书
2015年工商所工作总结
2015/05/21 职场文书
导游词之唐山景点
2019/12/18 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS
基于Python编写一个监控CPU的应用系统
2022/06/25 Python