我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue.js之mixins混合组件详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue.js之mixins混合组件详解

混合以一种灵活的方式为组件提供分布复用功能。混合对象可以包含任意的组件选项。当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中。

一、Mixins的基本用法

现在有个数字点击递增的程序,假设已经完成了,这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”.

代码实现过程:


<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    var addLog = {
    	// 将updated钩子混入到vue实例中
        updated() {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

当点击按钮时会触发混入的 addLog 中的 updated 方法。

二、mixins的调用顺序

  • 从执行的先后顺序来说,都是 混入的先执行,然后构造器里的再执行
  • data中的属性 和 methods里的方法,会覆盖构造器覆盖混入的属性和方法
  • 生命周期的钩子则会调用2遍,不会覆盖先调用混入钩子再调用构造器钩子

在上边的代码的构造器里我们也加入了updated的钩子函数:


<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    var addLog = {
        updated : function () {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        updated: function () {
            console.log("构造器里的updated方法。")
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

三、全局混入方式

全局混入的执行顺序要前于混入和构造器里的方法。


<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    Vue.mixin({
        updated: function () {
            console.log('我是全局被混入的');
        }
    })

    var addLog = {
        updated : function () {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        updated: function () {
            console.log("构造器里的updated方法。")
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

顺序总结:全局混入 > 局部混入 > 构造器

两个对象键名冲突时,取组件对象的键值对

当混入和组件对象中都有test方法(重名)时,最终的值取组件对象的键值对


  <div id="app">
      <p>num:{{ num }}</p>
      <P>
          <button @click="add">增加数量</button>
      </P>
  </div>

  <script>
      var addLog = {
          updated: function () {
              console.log("数据放生变化,变化成" + this.num + ".");
              this.test();
          },
          methods: {
              test: function () {
                  console.log('混入中的test')
              }
          }
      }

      var app = new Vue({
          el: '#app',
          data: {
              num: 1
          },
          methods: {
              add: function () {
                  this.num++;
              },
              test:function(){
                  console.log('组件对象中的test')
              }
          },
          mixins: [addLog], //混入
      })
</script>

这里写图片描述

到此这篇关于Vue.js之mixins混合组件详解的文章就介绍到这了,更多相关Vue.js之mixins混合内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue.js之mixins混合组件详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

OpenCV学习之图像的叠加与混合详解

这篇文章主要为大家详细介绍了OpenCV图像视觉学习中的图像的叠加与混合,文中的示例代码简洁易懂,具有一定的借鉴价值,需要的可以参考一下
2023-02-15

Spring实战之XML与JavaConfig的混合配置详解

前言之前提到了关于Spring的显示配置方式有两种,一种是基于XML配置,一种是基于JavaConfig的方式配置。对于这两种配置方式并不是互斥关系,相反,他们两能够相互融合,有效的搭配完成Spring的bean注入。这里分别介绍如何在Ja
2023-05-31

Flutter封装组动画混合动画AnimatedGroup示例详解

这篇文章主要为大家介绍了Flutter封装组动画混合动画AnimatedGroup示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-28

Springcloud之Gateway组件详解

SpringCloudGateway是SpringCloud微服务生态下的网关组件。SpringCloudGateway是基于Spring5和SpringBoot2搭建的,本质上是一个SpringBoot应用。本文详细介绍了SpringCloud的网关组件Gateway,,需要的朋友可以参考下
2023-05-19

揭秘 VUE Mixins 的精妙之处:组件复用与代码简洁的完美结合

VUE Mixins 是一个强大的工具,它允许你将组件的共用逻辑提取出来,并以可复用的方式在多个组件中使用。这可以大大减少代码的重复,并使你的代码更易于维护。
揭秘 VUE Mixins 的精妙之处:组件复用与代码简洁的完美结合
2024-02-13

AndroidJetpack组件之ViewModel使用详解

Android中的ViewModel是一个可以用来存储UI相关的数据的类。ViewModel的生命周期会比创建它的Activity、Fragment的生命周期长,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-05-14

Android四大组件之BroadcastReceiver详解

BroadcastReceiver是Android四大组件之一,用于接收和处理系统广播或者应用内发送的广播。广播是一种跨组件、跨应用的通信机制,可以用于在应用内部或者应用之间传递消息或者事件。BroadcastReceiver的主要作用是接
2023-08-09

Vue2 Element description组件列合并详解

在使用Vue的时候经常会涉及到表格的列合并,下面这篇文章主要给大家介绍了给大家Vue2 Element description组件列合并的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-16

编程热搜

目录