详解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 相关文章推荐
基于jquery的无刷新分页技术
Jun 11 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
Javascript基础教程之if条件语句
Jan 18 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 Javascript
Vue EventBus自定义组件事件传递
Jun 25 Javascript
vuex actions传递多参数的处理方法
Sep 18 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 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电台频率大全 - 28 甘肃省
2020/03/11 无线电
PHP 超链接 抓取实现代码
2009/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python开发之文件操作用法实例
2015/11/13 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
Python实现购物程序思路及代码
2017/07/24 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
python实现简单日期工具类
2019/04/24 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
Overload和Override的区别
2012/09/02 面试题
产品销售计划书
2014/05/04 职场文书
医学专业自荐信
2014/06/14 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL