详解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 相关文章推荐
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
基于jquery的二级联动菜单实现代码
Apr 25 Javascript
用js代码改变单选框选中状态的简单实例
Dec 18 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
jQuery实现图像旋转动画效果
May 29 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
Feb 20 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
Aug 25 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
jQuery实现轮播图及其原理详解
Apr 12 jQuery
小程序外卖订单界面的示例代码
Dec 30 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和ACCESS写聊天室(一)
2006/10/09 PHP
基于empty函数的输出详解
2013/06/17 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
程序员岗位职责
2013/11/11 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
颁奖晚会主持词
2014/03/25 职场文书
借款协议书
2014/04/12 职场文书
2014年采购部工作总结
2014/11/20 职场文书
农业项目合作意向书
2015/05/08 职场文书
小学运动会通讯稿
2015/07/18 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript