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中创建实例与原型继承揭秘
Dec 21 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
js鼠标滑过图片震动特效的方法
Feb 17 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
jQuery中事件与动画的总结分享
May 24 Javascript
Bootstrap Table的使用总结
Oct 08 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
Dec 05 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
Node与Python 双向通信的实现代码
Jul 16 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
php生成静态页面的简单示例
2014/04/17 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
jquery 中ajax执行的优先级
2015/06/22 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
点球小游戏python脚本
2018/05/22 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
商务日语毕业生自荐信范文
2013/11/14 职场文书
个人评价范文分享
2014/01/11 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
活动总结书
2014/05/08 职场文书
档案接收函格式
2015/01/30 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL