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 Tabs插件宿主IFRAMES
Jan 01 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
$.get获取一个文件的内容示例代码
Sep 11 Javascript
使用jQuery监听DOM元素大小变化
Feb 24 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
vue router下的html5 history在iis服务器上的设置方法
Oct 18 Javascript
webpack4.x打包过程详解
Jul 18 Javascript
js监听html页面的上下滚动事件方法
Sep 11 Javascript
ionic使用angularjs表单验证(模板验证)
Dec 12 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 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
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
从零开始搭建一个react项目开发
2018/02/09 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
使用JavaScript破解web
2018/09/28 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python timestamp和datetime之间转换详解
2017/12/11 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python实现简单多人聊天室
2018/12/11 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
趣味运动会广播稿
2014/09/13 职场文书
简易离婚协议书范本
2014/10/24 职场文书
升学宴学生答谢词
2015/01/05 职场文书
培根随笔读书笔记
2015/07/01 职场文书