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 支持ie和firefox杰奇翻页函数
Jul 22 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
对jQuary选择器的全面总结
Jun 20 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
Sep 08 Javascript
js获取ip和地区
Mar 10 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
简单使用webpack打包文件的实现
Oct 29 Javascript
JSON 入门教程基础篇 json入门学习笔记
Sep 22 Javascript
Js类的构建与继承案例详解
Sep 15 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP比你想象的好得多
2014/11/27 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
基于jQuery拖拽事件的封装
2020/11/29 jQuery
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
总裁助理岗位职责
2014/02/17 职场文书
2014年创先争优工作总结
2014/12/11 职场文书