详解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 相关文章推荐
Prototype 学习 工具函数学习($A方法)
Jul 12 Javascript
传智播客学习之JavaScript基础篇
Nov 13 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
javascript 动态创建表格的2种方法总结
Mar 04 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
Mar 13 Javascript
Node.js实用代码段之正确拼接Buffer
Mar 17 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
JavaScript数组方法总结分析
May 06 Javascript
移动前端图片压缩上传的实例
Dec 06 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 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 引用文件技巧
2010/03/02 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
python转换摩斯密码示例
2014/02/16 Python
python通过smpt发送邮件的方法
2015/04/30 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
新年主持词
2014/03/27 职场文书
大学校务公开实施方案
2014/03/31 职场文书
骨干教师申报材料
2014/12/17 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
2016高考感言
2015/08/01 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
教你用python控制安卓手机
2021/05/13 Python
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python