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 相关文章推荐
this和执行上下文实现代码
Jul 01 Javascript
详解jquery uploadify 上传文件
Nov 09 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
May 12 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
vue-cli 引入、配置axios的方法
May 08 Javascript
element el-input directive数字进行控制
Oct 11 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 Javascript
Vue实现简易购物车页面
Dec 30 Vue.js
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获得url参数中具有&的值的方法
2014/03/05 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js登录弹出层特效
2014/03/07 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
vue+Element-ui实现分页效果
2020/11/15 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
服务宗旨标语
2014/07/01 职场文书
电子工程求职信
2014/07/17 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript