广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue.js之mixins混合组件详解
  • 478
分享到

Vue.js之mixins混合组件详解

2024-04-02 19:04:59 478人浏览 泡泡鱼
摘要

混合以一种灵活的方式为组件提供分布复用功能。混合对象可以包含任意的组件选项。当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中。 一、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混合内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue.js之mixins混合组件详解

本文链接: https://www.lsjlt.com/news/135589.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue.js之mixins混合组件详解
    混合以一种灵活的方式为组件提供分布复用功能。混合对象可以包含任意的组件选项。当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中。 一、Mixins的基本用法 ...
    99+
    2022-11-12
  • Vue.js组件如何混合和自定义指令
    这篇文章将为大家详细讲解有关Vue.js组件如何混合和自定义指令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。混合是什么混合 (mixins) 是一种分发 Vue 组件中...
    99+
    2022-10-19
  • vue.js 动态组件详解
    :is 动态组件 使用 v-bind:is=”组件名”,会自动去找匹配的组件名,如果没有,则不显示; <div id="app"> <test v-bi...
    99+
    2022-11-12
  • Docker核心组件之联合文件系统详解
    目录1. 联合文件系统的定义2. 配置 Docker 的 AUFS 模式3. AUFS 工作原理3.1 AUFS 如何存储文件3.2 AUFS 如何工作4. AUFS 演示4.1 准...
    99+
    2022-11-13
  • Vue之组件详解
    <body> <div id="root"> <h2>{{name}}</h2> ...
    99+
    2022-11-12
  • OpenCV学习之图像的叠加与混合详解
    目录1.图像叠加2.图像混合本文是OpenCV图像视觉入门之路的第9篇文章,本文详细的在图像上面进行了图像叠加图像混合等操作。 1.图像叠加 图片叠加一般加入水印用的特别多,比如视...
    99+
    2023-02-15
    OpenCV图像叠加 OpenCV图像混合 OpenCV图像
  • Spring实战之XML与JavaConfig的混合配置详解
    前言之前提到了关于Spring的显示配置方式有两种,一种是基于XML配置,一种是基于JavaConfig的方式配置。对于这两种配置方式并不是互斥关系,相反,他们两能够相互融合,有效的搭配完成Spring的bean注入。这里分别介绍如何在Ja...
    99+
    2023-05-31
    spring javaconfig xml
  • Vue3组合式API之getCurrentInstance详解
    Vue2中,可以通过this来获取当前组件实例;  Vue3中,在setup中无法通过this获取组件实例,console.log(this)打印出来的值是undefine...
    99+
    2022-11-13
  • Springcloud之Gateway组件详解
    目录1.网关1.1 网关简介1.2 网关组件1.2.1 Gateway介绍1.2.2 Gateway实践1.2.3 Gateway执行流程1.2.4 断言工厂1.2.5 过滤器1.网...
    99+
    2023-05-19
    Springcloud Gateway组件 Springcloud Gateway Springcloud组件
  • Flutter封装组动画混合动画AnimatedGroup示例详解
    目录一、来源二、AnimatedGroup使用示例:三、AnimatedGroup源码最后一、来源 项目中遇到混合动画的情况,每次实现都需要生命一堆属性,让代码变得杂乱,难以维护。...
    99+
    2023-01-28
    Flutter封装AnimatedGroup Flutter封装组动画混合动画
  • react之组件通信详解
    目录父组件与子组件通信子组件与父组件通信跨组件通信祖先子孙兄弟节点通信总结父组件与子组件通信 父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时...
    99+
    2022-11-12
  • 详解Angular组件之投影
    目录概述一、简单例子1、子组件中使用<ng-content>指令来标记投影点2、父组件中把要投影到子组件的投影点的html片段写到子组件的标签中二、多个<ng-co...
    99+
    2022-11-12
  • Java之Springcloud Feign组件详解
    一、Feign是什么? OpenFeign是Spring Cloud提供的一个声明式的伪Hltp客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即...
    99+
    2022-11-12
  • Vue组件开发之异步组件详解
    目录一、引入二、vue中的异步组件三、异步组件和suspense总结一、引入 我们在讲异步组件之前,我们再来回顾一下webpack打包时的分包操作。我们可以使用import()异步加...
    99+
    2022-11-13
  • mysql踩坑之limit与sum函数混合使用问题详解
    前言 今天同事在同步完订单数据后,由于订单总金额和数据源的总金额存在差异,选择使用LIMIT和SUM()函数计算当前分页的总金额来和对方比较特定订单的总金额,却发现计算出来的金额并不是分页的订单总金额,而...
    99+
    2022-10-18
  • AndroidJetpack组件之ViewModel使用详解
    目录ViewModel的诞生ViewModel的作用ViewModel的简单应用ViewModel的诞生 解决以下几个问题: 瞬态数据丢失异步调用的内存泄漏 当我们取以异步操作区网络...
    99+
    2023-05-14
    Android Jetpack ViewModel Android ViewModel
  • Android组件之服务的详解
    目录一、服务的概念二、Android的多线程编程2.1 线程的基本用法2.2 在子线程中更新UI更新方式一更新方式二2.3 解析异步消息处理机制2.4 使用AsyncTask三、服务...
    99+
    2022-11-12
  • Android四大组件之BroadcastReceiver详解
    BroadcastReceiver是Android四大组件之一,用于接收和处理系统广播或者应用内发送的广播。广播是一种跨组件、跨应用的通信机制,可以用于在应用内部或者应用之间传递消息或者事件。BroadcastReceiver的主要作用...
    99+
    2023-08-09
    Android
  • Vue2 Element description组件列合并详解
    目录前言一、首次尝试1.style的失败尝试2.DOM结构二、解决方案总结前言 需求是description需要做成首行3列, 剩余行为4列, 额, 我说的是算上标签, 就像这样: ...
    99+
    2023-01-16
    vue2 ement description vue2 列合并
  • Vue3组件挂载之创建组件实例详解
    目录前情提要mountComponent创建组件实例总结前情提要 上文我们讲解了执行createApp(App).mount('#root')中的mount函数,我们...
    99+
    2022-11-13
    Vue3 组件挂载创建实例 Vue3 组件挂载
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作