详解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 相关文章推荐
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
js 省地市级联选择
Feb 07 Javascript
Javascript中For In语句用法实例
May 14 Javascript
浅谈javascript事件取消和阻止冒泡
May 26 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
Oct 17 Javascript
js自定义QQ菜单效果
Jan 10 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 Javascript
详解Vue之事件处理
Jul 10 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
详解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/02/22 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
Prototype Function对象 学习
2009/07/12 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
python使用urllib2提交http post请求的方法
2015/05/26 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python并发和异步编程实例
2018/11/15 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
《植物妈妈有办法》教学反思
2014/02/25 职场文书
学校与家长安全责任书
2014/07/23 职场文书
六年级语文教学反思
2016/03/03 职场文书
Java基础——Map集合
2022/04/01 Java/Android