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计算页面执行时间的函数
Dec 07 Javascript
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
JQuery实现鼠标滑过显示导航下拉列表
Sep 12 Javascript
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
js window对象属性和方法相关资料整理
Nov 11 Javascript
深入理解Ajax的get和post请求
Jun 02 Javascript
JSON与js对象序列化实例详解
Mar 16 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 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
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python开发中range()函数用法实例分析
2015/11/12 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
python 实现矩阵按对角线打印
2019/11/29 Python
Django 路由层URLconf的实现
2019/12/30 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
经济职业学院毕业生自荐书
2014/03/17 职场文书
健康教育评估方案
2014/05/25 职场文书
介绍信格式
2015/01/30 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Golang的继承模拟实例
2021/06/30 Golang
Win11开始菜单添加休眠选项
2022/04/19 数码科技
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js
MySQL数据库 安全管理
2022/05/06 MySQL