详解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自定义button按钮的几种方法
Jun 11 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
Mar 30 Javascript
JavaScript各类型的关系图解
Oct 16 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
js 数据存储和DOM编程
Feb 09 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
Jun 24 Javascript
vue实现页面切换滑动效果
Jun 29 Javascript
Element Rate 评分的使用方法
Jul 27 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
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
详解angular element()方法使用
2017/04/08 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
用Python编写简单的定时器的方法
2015/05/02 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
小学开学典礼主持词
2014/03/19 职场文书
小学教师评语大全
2014/04/23 职场文书
投资意向书
2014/07/30 职场文书
教师演讲稿开场白
2014/08/25 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python