Vue中的混入的使用(vue mixins)


Posted in Javascript onJune 01, 2018

使用场景:

例如我们在Vue单页面开发的时候当多个组件中都需要下拉刷新,或者使用的都是一个方法的时候,我们就可以使用vue mixins进行封装调用,以及继承,具体看代码。

选项合并

var mixin = {
        data: function () {
        return {
         message: 'hello'
        }
       },
       created:function(){
        console.log('我是mixins中的created')
       },
       methods:{
        show:function(num){
          console.log(num) //mixins种的函数可以接收组件种的传参。
        },
        foo: function () {
         console.log('foo')
        },
        conflicting: function () {
         console.log('from mixin')
        }
       }
      }

      var vm = new Vue({
       mixins: [mixin],
       data: function () {
        return {
         title: 'def',
         message: 'goodbye'
        }
       },
       created: function () {
        console.log('我是Vue中的created')
        console.log(this.$data)
        this.show(50); //可通过函数传参,把组件中需要的参数传给mixins进行使用。
       },
       methods:{
        bar: function () {
         console.log('bar')
        },
        conflicting: function () {
         console.log('from self')
        }
       }
      })
      
      vm.foo() // => "foo"
      vm.bar() // => "bar"
      vm.conflicting() // => "from self"

注意以下三点:

1、当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。比如,数据对象在内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先。

2、同名钩子函数将混合为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

3、值为对象的选项,例如 methods, components 和 directives,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对。

全局混入

也可以全局注册混入对象。注意使用! 一旦使用全局混入对象,将会影响到 所有 之后创建的 Vue 实例。使用恰当时,可以为自定义对象注入处理逻辑。

//为自定义的选项 'myOption' 注入一个处理器。
Vue.mixin({
 created: function () {
  var myOption = this.$options.myOption
  if (myOption) {
   console.log(myOption)
  }
 }
})

new Vue({
 myOption: 'hello!'
})
// => "hello!"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery中animate动画积累的解决方法
Oct 05 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
three.js中文文档学习之如何本地运行详解
Nov 20 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
Jun 18 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
JavaScript快速调试的两个技巧
Nov 04 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 #Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 #Javascript
Express之托管静态文件的方法
Jun 01 #Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 #Javascript
详解Angular操作cookies方法
Jun 01 #Javascript
浅谈手写node可读流之流动模式
Jun 01 #Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
Jun 01 #Javascript
You might like
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
php测试kafka项目示例
2020/02/06 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python中异常重试的解决方案详解
2017/05/05 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
python读取ini配置文件过程示范
2019/12/23 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
婚假请假条格式及范文
2014/04/10 职场文书
校长四风对照检查材料
2014/09/27 职场文书
2014年审计工作总结
2014/11/17 职场文书
发布会邀请函
2015/01/31 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python