详解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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
JQuery 学习笔记 选择器之五
Jul 23 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 Javascript
JS+Canvas绘制时钟效果
Aug 20 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
JavaScript计算出两个数的差值
Mar 19 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中防止SQL注入方法详解
2014/12/25 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
用 JSON 处理缓存
2007/04/27 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
浅析Python基础-流程控制
2016/03/18 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
2015年教师节慰问信
2015/03/23 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
Golang连接并操作MySQL
2022/04/14 MySQL