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 相关文章推荐
Javascript 的addEventListener()及attachEvent()区别分析
May 21 Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
javascript中clipboardData对象用法详解
May 13 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
使用JS动态显示文本
Sep 09 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
Jul 13 Javascript
jquery实现搜索框功能实例详解
Jul 23 jQuery
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
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
javascript 禁止复制网页
2009/06/11 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
python关闭windows进程的方法
2015/04/18 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
函授本科自我鉴定
2013/11/03 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
公开承诺书格式
2014/05/21 职场文书
团队队名口号大全
2014/06/06 职场文书
员工试用期工作总结
2019/06/20 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python编写nmap扫描工具
2021/07/21 Python