vuejs中如何使用mixin-局部混入/全局混入

Vue3+uniapp微信小程序分享功能全攻略:从全局混入到单页面定制 本文详细介绍了在Vue3+uniapp框架下实现微信小程序分享功能的完整方案,包括全局混入(mixin)配置和页面级定制方法。通过实战代码演示如何解决分享菜单不可用、内容定制等常见问题,并提供了分享追踪、动态图片生成等高级应用场景的优化建议,帮助开发者高效实现小程序分享功能。 阅读详情

虽互不曾谋面,但希望能和您成为笔尖下的朋友

以读书,技术,生活为主,偶尔撒点鸡汤

不作,不敷衍,意在真诚吐露,用心分享

点击左上方,可关注本刊

标星公众号(ID:itclanCoder)

如果不知道如何操作

点击这里,标星不迷路

前言

我们在实际项目开发中,有很多基本相似功能模块,只是操作显示数据不同,很多逻辑和配置都是相同的

在Vue项目里,每个单文件组件都是一个模块组件,每个组件都有自己内部的数据和方法逻辑

如果每个单文件组件想要实现同样的功能

那么在每个单文件组件都要在逻辑业务代码里重复写一遍,这样在很多单文件组件内,到处都是从某一处复制粘贴过来的代码

在Vue当中,可以用封装组件来达到复用代码的目的,除了可以复用模板,那么逻辑,一些配置选项,是不是也可以公用?

当然是可以的,当只需要二次修改时,同样的逻辑的代码,只需要修改一处就可以了的

今天就来学习下Vue当中的这个mixin的,多个组件,当遇到相同的逻辑,是如何共用逻辑配置的

01

需求

假设:现在有两个不同的按钮组件ButtonA,ButtonB,点击它弹出组件自身不同的属性

用Vue-cli脚手架创建一个项目,在components文件夹下分别创建ButtonA.vue,ButtonB.vue两个组件

以下是ButtonA组件内容,在按钮上绑定了handleButton方法,并在methods选项配置中定义

<template>
    <div class="wrap">
        <button @click="handleButton">按钮组件A</button>
    </div>
</template>
<script>
    export default {
        name: "ButtonA",
        data() {
            return {
                name: "itclan.cn"
            }
        },
        methods: {
            handleButton() {
                alert(this.name);
            }
        }
    }
</script>

<style lang="scss" scoped>
.wrap {
    margin-right: 20px;
}
</style>

以下是ButtonB组件内容,在按钮上绑定了handleButton方法,并在methods选项配置中定义

<template>
    <div>
        <button @click="handleButton">按钮组件B</button>
    </div>
</template>

<script>
    export default {
        name: "ButtonB",
        data() {
            return {
                name: "video.itclan.cn"
            }
        },
        methods: {
            handleButton() {
                alert(this.name);
            }
        }
    }
</script>

<style lang="scss" scoped>

</style>

然后再App.vue当中引入两个ButtonA,ButtonB组件

<template>
  <div id="app">
       <ButtonA></ButtonA>
       <ButtonB></ButtonB>
  </div>
</template>

<script>

import ButtonA from "./components/ButtonA"
import ButtonB from "./components/ButtonB"
export default {
  name: 'App',
  components: {
    ButtonA,
    ButtonB
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
  display: flex;
  justify-content: center;
}
</style>

经过上面的几行代码,可以实现我们想要的目的,但是你会发现,他们的功能逻辑都是一样的,定义的方法名也都是一样的

如果一个项目里,有很多个这样的组件,只要想改,那么所有的单文件组件都得手动的修改一次,毫无疑问,重复性的代码也比较多,比较分散

对于不同组件间同样的配置,能不能提取出来共用一份呢,在Vue当中,提供了mixin

02

什么是mixin

把多 个组件共有的配置提取成一个混入对象,然后通过局部混入或者全局混入,以达到共用配置的目的,这就是 mixin

官方文档: 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项

翻译一下: 将组件的公共逻辑或者配置(包括data,方法,生命周期,甚至props等)提取出来,哪个组件需要用到时,直接将提取的这部分混入到组件内部即可。这样既可以减少代码冗余度,也可以让后期维护起来更加容易,改一处即可,不用到处去每个组件内修改配置

注意:提取的是逻辑或配置,而不是HTML代码和CSS代码。也就是说,mixin就是组件中的组件,Vue组件化让我们的代码复用性更高

那么组件与组件之间还有重复部分,比如逻辑业务的复用,我们还可以使用Mixin在抽离一遍

以下是经过mixin改写过的

在src文件夹下创建一个mixin文件夹(这个文件夹下全部放入一些混入),创建一个popButton.js文件,创建一个对象,然后暴露出去,如下所示

export const popButton  = {
    // 这里面组件选项的配置都是可以的,生命周期等,data属性,计算属性,监听属性等
    methods: {
        handleButton() {
            alert(this.name);
        }
    }
}

然后再组件使用处引入即可,如下ButtonA组件,通过import引入,同时在组件配置选项中mixins:[引入的混入名],要是多个的话,用逗号分隔

<template>
    <div class="wrap">
        <button @click="handleButton">按钮组件A</button>
    </div>
</template>

<script>
import {popButton} from "../mixin/popButton.js"
    export default {
        name: "ButtonA",
        mixins: [popButton],
        data() {
            return {
                name: "itclan.cn"
            }
        },
    }
</script>

<style lang="scss" scoped>
.wrap {
    margin-right: 20px;
}
</style>

这种在组件内部,通过minxins:[混入名称],也被视为局部混入

局部混入也就是只在当前组件内起作用,与按需加载有些相似,也就是需要用到mixin中的代码时,我们再在组件内引入它

而全局混入的话,则代表我在项目的任何组件中都可以使用mixin,从根组件下至到它的任何一个组件都会用到混入

03

全局混入


局部混入是,在需要的组件引入混入,通过import导入混入,在通过在组件的配置选项中通过minxins: [混入名称]

而全局混入,则是在项目代码中的main.js中去引入混入,在用Vue.mixin(混入名称)进行注册

这样任何一个组件,都可以使用混入了的,如下代码所示

import Vue from 'vue'
import App from './App.vue'

import {popButton} from "./mixin/popButton.js"

Vue.mixin(popButton);

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

注意事项 

在使用全局混入时,应当格外小心,一旦使用全局混入,它将影响每一个之后创建的vue实例,也就是所有的vm,vc都会有混入

它与局部混入没有啥区别,虽然一次性注入混入很方便,但是也会带来一些问题,所有的组件实例,Vue实例都会有混入

在官方的特殊提示里,提到了,谨慎使用全局混入,因为它会影响每个单独创建的vue实例(包括第三方组件)

大多数情况下,只应当应用于自定义选项,就像上面示例一样,推荐将其作为插件发布,以避免重复应用混入 

04

几个重要的疑问


  • mixin中的生命周期函数会和组件的生命周期一起合并执行

  • mixin中的data数据在组件中可以使用

  • mixin中的方法在组件内部可以直接调用

  • 生命周期函数合并后执行顺序:先执行mixin中的,然后执行组件的

  • mounted不会合并,都会加载一遍

  • 不同组件中的mixin是相互独立的,改变一个组件中mixin中的数据,另一个引用了mixin的组件不会受影响

如下代码

export const popButton  = {
    data() {
        return {
            name: "川川",
            age: 18
        }
    },
    created() {
        console.log("混入生命周期开始执行");
    },
    mounted() {
        console.log("我是混入");
    },
    methods: {
        handleButton() {
            alert(this.name);
        },
        handleMounted() {
            console.log("加载方法");
        }
    }
}


05

选项合并

当组件和混入对象含有同名选项时,这些选项将以合适的方式进行合并

也就是说,当mixin中定义的数据,方法名与组件里的属性名,方法名同名时,会怎么样呢

会存在数据,和方法名的覆盖问题?谁覆盖谁?执行先后顺序是?

生命周期函数

mixin里面可以有自己的生命周期函数,同组件一样,生命周期函数是自执行函数,在某个阶段会自动执行

它都是固定的,默认合并策略如下所示

  • 先执行mixin中生命周期函数中的代码,然后再执行组件内部的代码

export const popButton  = {
    data() {
        return {
            name: "川川",
            age: 18
        }
    },
    beforeCreate() {
        console.log("创建之前");
    },
    created() {
        console.log("混入生命周期开始执行");
    },
    mounted() {
        console.log("我是混入");
    },

    beforeUpdate() {
        console.log("更新之前");
    },
    updated() {
        console.log("更新之时");
    },
    beforeDestroy() {
        console.log("销毁之前");
    },
    destroyed() {
        console.log("销毁时");
    },
    methods: {
        handleButton() {
            alert(this.name);
        },
        handleMounted() {
            console.log("加载方法");
        }
    }
}

若是方法重名,则后者组件内的方法会覆盖mixin中的方法

data数据冲突

当mixin中的data数据与组件中的data数据冲突时,组件中的data数据会覆盖mixin中的数据

若是没有相同的话,会进行数据的合并

export const popButton  = {
    data() {
        return {
            name: "川川",
            age: 18
        }
    },
}

方法名冲突

在同一个项目里,起相同的名称,是很容易遇到的,如果mixin中的方法名与引入mixin中组件的方法名一致时,那么以当前组件为准

06

mixin的优缺点


既然mixin这么好用,那为什么不直接大量推荐使用?mixin可以复用组件的逻辑,这样可以节省很多代码,但是同样,也会带来一些问题

1.变量名来源不明确

在某些单文件组件里,引入mixin,因为组件内可以调用mixin的方法和使用mixin中定义的数据,找上下文的时候,变得不是那么直观,要么通过阅读代码逐级向上进行查找,要么就是全局进行搜索查找

使用mixin时,不利于阅读,代码变得难以维护

因为组件里可以引入多个mixin,并直接隐式的调用mixin里面的变量和方法,这会让写代码的人看着有些混乱,区分不出这些变量和方法,分别是哪个mixin的

所以这里建议是:但凡mixin的方法,统一放到mixin文件夹下进行管理的

2. 多个mixins的生命周期会合并融合到一起运行,但是同名属性,同名方法无法融合,会导致冲突或覆盖

当遇到组件中定义的属性,方法与minxin当中的出现相同时,后者组件的属性会覆盖mixin中的属性

3. mixins和组件可能出现多对多的关系,复杂度会变高

一个组件可以引用多个mixins一个mixins也可以被多个组件引用,因为是共用逻辑,所以在关系上,不是很明确

不好追溯代码,排查问题,可以利用工具vscode全局搜索,如果是很多个地方用到了的mixin那么就得挨个的检查

如果滥用mixin的话,会让代码变得难以维护

如果是用了全局混入,在审查代码时,在任何一组件当中会莫名的多出一些属性和方法,会令新的同学很困惑,如果对mixin很熟悉的话,那没什么,如果不熟悉

那么就非常苦恼,这个变量名和方法,我在组件当中明明没有定义,但是为啥能使用呢,带来一些困惑

::: tip 注意 如果一个功能,逻辑,一开始就很确定,它以后是不会动的,那么就可以使用mixin:::

mixin优点

  • 提高组件代码复用性

  • 无需传递状态

  • 维护方便,只需要修改一处地方就可以,全局混入,应当谨慎使用

总结

mixin是在vue当中复用逻辑,精简代码的一种思想,相当于就是提取组件当中的公共配置属性,方法,可以使用mixins:[混入名称]局部混入,也可以在main.js中Vue.mixin(混入名称),全局混入

给封装复用代码带来了很多方便,但是也不要滥用它,有些场景非常适合,但是有些场景使用过多了,也会带来一些不可预知的问题

一般封装公共组件就比较适合使用mixin,还有做数据可视化时,当组件层级较多,想要从同一个数据源抽出公共的数据时,也可以使用mixin

在阅读一些优秀的项目时,也会看到很多项目里有使用mixin的

vuejs中的默认插槽-具名插槽-作用域插槽三者的比较

2022-05-12

6a763b5965344dcfffad1e55c91e94ee.png

针对网站链接-使用rel=”nofollow”属性提升网站seo

2022-03-19

a36cdcfc3c1c8f2182a06cda58d66a54.png

网站被qq拦截应该怎么处理

2022-03-20

5f64ab49633662ba212aec03bccb759c.png

如何通过一行代码实现等待指定若干秒后自动跳转到指定的网站上

2022-03-17

1c383ab3c14b2eef54c2cc902caae705.png

vuepress中如何自定义组件以及引入打赏功能

2022-03-12

7b1498f563faf4db670fe3fd8c001141.png

vuejs中的模板/普通方法/计算属性computed与监听属性watch四者的比较

2022-01-12

37eddd6fa14d1da87d038a8bdf445a0e.png

69386e01243184d6c1a76bf164b2fab4.png

点个在看你最好看

猛戳下方

3078074231fe321af6bdf9fa17c20eb8.png

“阅读原文”

(Vue)局部混入mixin混入用法 今天无意在百度上搜了一下mixins,然后哐哐得出来的都是mixin的概念,mixins的原理(几句话咱也没看懂),有几个是用法的,但是说的也是含含糊糊。。还有的画思维导图的。。挺简单的问题非要复杂化。。。 其实我就想知道咋用,能干什么,其他的我真不关心。。(最好带那种步骤的才好~ haha…) 好了,步入正题,mixin官方文档上得解释是: 官方文档介绍的。。有点官方。。。反正我第一遍是没看... 阅读详情

相关推荐

Vue.js中的Mixin混入 - 局部混入/全局混入

在Vue.js中,Mixin混入是一种重用组件逻辑的方式。Vue.js提供了两种类型的Mixin混入:局部混入和全局混入。接下来,我们将详细介绍这两种混入方式,并提供相应的源代码示例。我们可以使用局部混入将Mixin混入应用于特定的组件,以实现组件级别的代码重用。而全局混入则可以将Mixin混入应用于所有的Vue组件,从而实现全局级别的代码重用。需要注意的是,当组件和Mixin混入具有相同的选项时,组件的选项将具有优先权。因此,在使用Mixin混入时,确保不会与组件的选项产生冲突或重复定义。

GmhVue的博客 374

vue2和vue3分别如何全局引入并使用js

讲解了在vue2和vue3,以及uniapp项目中分别如何全局引入并使用js

weixin_44594219的博客 4705

Visual Tracker Benchamark傻瓜式教程(二)

问题  1 1  在调用main.m跑TRE和SRE时,因为会生成相应的.mat数据文件,如果跑完以后发现自己算法生成的.mat文件有问题,那么要把该文件删除,待找到错误原因后,重新生成相应的.mat文件。因为程序中写的是如果已经存在了.mat文件,例如已经存在car4_STC.mat文件,即使该文件中的数据有错误,但是重新跑时会默认该文件中的数据写完,不会重新写入数据 问题  2  b

mingbujingren的专栏 9928

Vue--mixin混入操作(局部/全局混入)

Vue--mixin混入操作(局部/全局混入)

weixin_71403100的博客 2533

深入解析poi-tl自定义表格渲染插件中的多级子循环实现

本文深入解析了poi-tl自定义表格渲染插件中的多级子循环实现,详细介绍了其在处理复杂业务数据时的核心价值、实现原理及实战技巧。通过多级子循环机制,开发者可以高效地将层级数据结构渲染到Word表格中,显著提升代码简洁性和维护效率。文章还分享了性能优化和异常处理经验,帮助开发者更好地应用该插件。

weixin_33734785的博客 484

T2T基因组组装实战指南:从数据到完整染色体

本文详细介绍了T2T基因组组装技术的实战指南,从测序数据选择到完整染色体组装的全流程。重点解析了ONT ultra-long和PacBio HiFi测序技术的优势,以及如何攻克端粒和着丝粒等重复区域的组装难题。通过具体案例和实用技巧,帮助研究人员实现从数据到完整染色体的高质量组装。

weixin_29292535的博客 845

vue的mixins混入功能

混入minxins:分发vue组件中可复用功能的灵活方式。混入对象可以包含任意组件选项。组件使用混入对象时,所有混入对象的选项将混入该组件本身的选项。 选项合并:组件选项和对象选项同名时,将以恰当方式混合。 数据对象:和组件数据冲突时以组件数据优先 同名钩子函数:混合为一个数组,都将被调用,混入对象钩子先调用。 值为对象选项:methods,components,将被混合为同一个对象...

是一座岛 8638

python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装)

python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装) 写在前面 事先说明,本人不是大佬,我只是在不断探索的途中找到了解决这个问题的方法,之前在网上搜索的时候没有看到相关文章,所以就来简单讲一下。 正文 借着蚂蚁金服小程序大赛开通了支付宝小程序个人开发者,尝试将一个微信小程序的项目移植到支付宝上,支付宝对于用户唯一id的获取比微信要复杂很多,微信...

weixin_43102379的博客 3642

Vue中使用mixins混入

组件在引用之后相当于在父组件内开辟了一块单独的空间,来根据父组件props过来的值进行相应的操作,本质上两者还是泾渭分明,相对独立。mixins则是在引入组件之后,是将组件内部的内容如data等方法、method等属性与父组件相应内容进行合并。相当于在引入后,父组件的各种属性方法都被扩充。简单理解:减少代码冗余,提高开发效率,复用组件数据,方法等,以提高开发速度新建 引入注册并使用mixins 五、全局混入(不推荐)...

Web_chicken的博客 2512

运放偏置电路设计:如何精准计算差分放大器的电压偏移量

本文深入解析了差分放大器偏置电路的设计原理与精准计算方法,重点阐述了如何通过引入参考电压实现信号电压偏移,以适应单电源ADC的输入范围。文章结合实战案例,详细推导了偏移电压公式,并强调了电阻匹配、运放选型及PCB布局对精度和共模抑制比的关键影响,帮助硬件工程师避免常见设计陷阱。

weixin_29288313的博客 634

大模型复杂问答能力评测框架:从原理到实践

在人工智能领域,大语言模型(LLM)的评估是衡量其实际应用价值的关键环节。其核心原理在于通过系统化的评测框架,对模型的理解、推理、整合与表达能力进行量化分析。传统的NLP基准测试往往侧重于事实性检索或简单推理,难以全面反映模型在应对多跳推理、隐含条件、长上下文整合等复杂现实任务时的真实性能。因此,专门针对复杂问答设计的评测技术应运而生,其价值在于为模型选型、效果优化和瓶颈诊断提供数据驱动的科学依据。该技术广泛应用于需要深度逻辑判断的业务场景,如智能投顾、法律咨询、医疗诊断等。本文聚焦的`tan92hl/Co

weixin_28679635的博客 362

Vue之混入(mixins)

混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。 数据对象在内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先。 //1.定义一个mixins对象 var countConsole = { data() { return {...

Radom&7 3082

YOLOv11的对比学习预训练改进-(通过SimCLR预训练增强特征提取)

本文介绍了将SimCLR对比学习预训练与YOLOv11目标检测模型相结合的创新方法。文章首先概述了目标检测领域的发展现状和YOLOv11的架构优化,包括主干网络、特征金字塔和检测头的改进设计。其次详细解析了SimCLR对比学习的核心原理,涵盖数据增强、投影头设计和NT-Xent损失函数。最后探讨了如何将对比学习与目标检测有效结合,通过特征空间对齐和渐进式微调策略提升模型性能。该方法显著增强了特征提取能力,提高了检测精度和训练效率,特别是在小目标和遮挡目标的检测上表现突出。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 685

Vue中的mixin-局部混入/全局混入

mixin

weixin_43323097的博客 1527

7、PPG信号处理与质量评估

本文详细介绍了PPG信号的处理与质量评估方法,包括信号滤波技术(如卷积和互相关)、滤波器选择、信号质量指标(SQI)的定义与应用,以及标注一致性的评估。同时,提供了MATLAB代码示例和操作步骤,并分析了不同指标的优势与适用场景,旨在提高PPG信号在诊断和监测中的准确性与可靠性。

salt的博客 254

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

第八章:vue生命周期、vue的DOM操作、mixin混入,插件

vue/cli 脚手架:vue.js==={1.vue的核心代码 2.vue的模板编译器}开发过程中当多个组件开发时有相同类名时,此时vue会按照组件的导入顺序进行解析,后导入的组件 会覆盖先导入的组件类名样式通过在样式表的< style>标签中添加scoped属性可以让样式只在当前组件内起作用。原理是 添加过scoped属性后,vue会自动的在该组件的标签前添加 一个自定义的属性名,然后通过属性选择器去确定到底使用哪个样式内容。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img

张晨光老师的播客 922

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Vue进阶属性

computered -计算属性 不需要加括号 它会根据依赖是否变化来缓存 watch - 侦听 一旦data变化,就执行的函数 options.watch用法 this.$watch用法 deep,immediate含义 directives - 指令 内置指令 v-if / v-for / v-bind / v-on 自定义指令,如v-focus 指令是为了减少重复的DOM操作 mixin - 混入 重复三次之后的出路 混入v.s.全局混入 选项自动合并 混入

weixin_53562163的博客 558

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Vue3——组件

在使用组件之前需要将组件注册到应用中。Vue.js提供了两种注册方式,分别是全局注册和局部注册,下面分别进行介绍。全局注册的组件也叫全局组件。注册一个全局组件的语法格式如下: 两个参数的说明如下:在注册组件后,组件以自定义元素的形式进行使用。使用组件的方式如下: 例如,注册一个简单的全局组件。代码如下: 组件的模板只能有一个根元素。如果模板内容有多个元素,可以将模板的内容包含在一个父元素内。示例代码如下: 在组件的选项对象中可以使用data选项定义数据。示例代码如下: 上述代码中定义了3个相同的按钮组件。当

吴声子夜歌的博客 403

vue混入mixin浅析

mixin 基础 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 局部混入 // 定义一个混入对象 var myMixin = { created: function () { this.hello() }, methods: { hello: function () { console.log('hello from mi

zjuwwj的博客 526

浅析vue混入(mixin)

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。这句话我们可以理解为在js代码中定义一个混入对象,里面可以包含一个组件可以有的任何组件选项:data、method、watch、钩子函数等,使用的话,分为局部混入和全局混入。首先新建...

青年码农 398

Vue 混入(mixin)详细介绍(可复用性、全局混入)

基础 混入(mixin)提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项(如data、methods、mounted等等)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 基本使用 1、定义一个混入(mixin) let mixin = { created() { console.log("我是mixin里面的created!") }, methods: { hello() { .

高大志leo的博客 3万+

vue中的mixin(局部混入、全局混入)

如果在使用混入的过程中出现冲突,除生命周期钩子外,其余的都以本组件中的为主,混入的不生效;在日常的开发中,我们经常会遇到在不同的组件中经常会需要用到一些功能相同或者相似的代码(造成代码冗余),这时可以通过Vue的mixin功能将相同或者相似的代码抽取出来。全局混入表示混入到Vue对象中,Vue下的所有组件都会使用混入的方法,一定要注意,是所有的组件,所以,在使用全局混入的时候要确保所有的组件都会使用到。通过观察上面两个组件,发现两者的逻辑是相同,代码控制显示也是相同的,这时候mixin就派上用场了。

大圣归来圣骑士清欢的博客 6431

Vue|mixin混入

在 Vue 中,混入(Mixins)是一种灵活的分发功能,可以将可复用的代码片段和功能注入到多个组件中。简单来说,混入允许你在多个组件之间共享逻辑,而无需重复代码。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 8540

彻底搞懂Vue中的Mixin混入(保姆级教程)

这篇文章是关于 Vue 中 Mixin 混入的保姆级教程。先介绍了 Vue 中 Mixin 的概念,即提取组件公共逻辑或配置。接着对比了它和 Vuex 的区别,然后讲解了如何使用,包括定义、局部和全局混入及可能的冲突。还阐述了其优缺点,优点是提高复用性等,缺点是命名冲突等,使用时需权衡取舍。

m0_70683410的博客 6309

VUE的混入mixin使用方法及用途

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 个人理解: 就是有很多组件需要同一个方法。同一个变量。做同样的事。这个时候就用到这个混入的功能。混入之后变量组件内可用,方法也可用,写在周期函数的代码也会执行。 写一个mess.js文件 expor...

Army-海军的博客 1万+
上一篇: vuejs中的默认插槽-具名插槽-作用域插槽三者的比较
下一篇: 关于script标签中type的使用
itclanCoder
博客等级 码龄10年 1485粉丝 434原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值