详解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 图片轮播(5张图片)
Dec 30 Javascript
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
超全面的javascript中变量命名规则
Feb 09 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
vue增删改查的简单操作
Jul 15 Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php object转数组示例
2014/01/15 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
javascript之bind使用介绍
2011/10/09 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
JS实现随机点名器
2020/04/12 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Python字节单位转换实例
2019/12/05 Python
python绘制彩虹图
2019/12/16 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Python如何定义有可选参数的元类
2020/07/31 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
通信工程毕业生求职信
2013/11/16 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
2015年保送生自荐信
2015/03/24 职场文书
2016寒假假期总结
2015/10/10 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python