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 相关文章推荐
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
jquery 取子节点及当前节点属性值的方法
Aug 24 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
js控制按钮,防止频繁点击响应的实例
Feb 15 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
js原生方法被覆盖,从新赋值原生的方法
Jan 02 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
vue切换菜单取消未完成接口请求的案例
Nov 13 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP系统流量分析的程序
2006/10/09 PHP
php SQL Injection with MySQL
2011/02/27 PHP
解析argc argv在php中的应用
2013/06/24 PHP
初识PHP
2014/09/28 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JavaScript中的标签语句用法分析
2015/02/10 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
python 读取.nii格式图像实例
2020/07/01 Python
Python如何重新加载模块
2020/07/29 Python
Django如何批量创建Model
2020/09/01 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
书法培训心得体会
2014/01/05 职场文书
办理居住证介绍信
2014/01/15 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
党员承诺书格式范文
2015/04/28 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书