【Vue】Mixin 混入

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

Vue Mixin 混入

1.简介

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

2.基本使用

2.1 定义混入

首先,在混入中定义的往往是可复用的内容,因此,一般会单独建立一个文件夹 mixin,专门用于存放混入文件。

在这里插入图片描述

let testMixin = {
    created() {
        console.log("这是testMixin中的created方法!");
    },
    methods: {
        hello() {
            console.log("hello from testMixin!");
        }
    },
}

export default testMixin
2.2 使用混入

在这里插入图片描述

此时,在主页组件 index.vue 中,没有定义任何的 created、methods 或 mounted等,但是此时打开控制台:

在这里插入图片描述

说明此时执行了混入中定义的 created 方法!

此时,再为主页组件加上 mounted 生命周期钩子,并在其中使用this.hello()

在这里插入图片描述

控制台打印出的结果为:

在这里插入图片描述

即成功执行了混入对象中定义的方法 hello(),也验证了当前组件中合并了混入对象中定义的选项和方法。这就是混入的基本使用。

2.选项合并

当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

仍然使用上面的例子,我们在混入对象 testMixin 中,已经定义了一个方法 hello()。那么如果此时我们在主页组件中再定义一个 hello() 方法,mounted 中执行的会是哪一个 hello() 呢?

在这里插入图片描述

最终,控制台打印结果如下:

在这里插入图片描述

此时,同名的 created 生命周期钩子进行了合并,合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

而 methods 中的 hello 方法因为冲突,在合并时保留组件中的hello,即优先当前组件的选项,因此打印的是“hello from home!”。

3.可复用性与全局混入

3.1 可复用性

开篇提过,混入对象可成为一个可复用功能,我们在另外的组件中引入已定义的混入对象,可实现同样的逻辑与功能。

那么有个问题,如果很多个组件同时使用同一个混入对象,这时候都要重复一个步骤,就是先导入混入对象,然后再使用,类似如下:

<script>
import myMixins from "../mixins";
export default {
  mixins: [myMixins]
};
</script>

这样未免有点繁琐,且代码冗余,此时我们可以使用全局混入来优化这个问题。

3.2 全局混入

在 Vue 中,混入也可以进行全局注册。

例如这里,我们在 main.js 中通过Vue.mixin()引入混入对象,后续即可全局使用(作用于该Vue实例下的所有组件)

在这里插入图片描述

然后在主页组件中,将我们原来引入混入的代码删除:

在这里插入图片描述

此时刷新页面,查看控制台输出信息:

在这里插入图片描述

仍然执行了混入中的方法!其效果与在每个组件中单独引入混入对象相同,这便是全局混入。

请谨慎使用全局混入,因为它会影响每个单独创建的 Vue 实例 (包括第三方组件)。大多数情况下,只应当应用于自定义选项,就像上面示例一样。推荐将其作为插件发布,以避免重复应用混入。

前端VUE【实战】—— mixin混入用法总结 值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!另外,混入对象的钩子将在组件自身钩子之前调用。尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。// => “混入对象的钩子被调用” 阅读详情

相关推荐

Fast-LIO2代码解析 古月居

FAST-LIO,FAST-LIO2与FASTER-LIO - 古月居FAST-LIO2代码解析(一) - 古月居FAST-LIO2代码解析(二) - 古月居FAST-LIO2代码解析(三) - 古月居FAST-LIO2代码解析(四) - 古月居FAST-LIO2代码解析(五) - 古月居FAST-LIO2代码解析(六) - 古月居

li4692625的博客 2783

vue3.2的特性

定义:是Vue3推出的一个内置组件,它允许我们的程序在等待异步组件时渲染一些后备的内容,可以让我们创建一个平滑的用户体验;在vue3中,如果一个元素同时定义了v-bind="object"和一个相同的单独的属性,那么声明绑定的顺序决定了最后的结果(后者覆盖前者)在vue2.x中,如果一个元素同时定义了v-bind="object"和一个相同的单独的属性,那么这个单独的属性会覆盖object中的绑定。在vue2.x中,要求每个模板必须有一个根节点,在Vue3中我们可以直接不需要根节点。

qq_38918953的博客 1469

手把手教你搭建基于Springboot+Vue的酒店管理系统

友友们,又是好久没更新了,马上元旦了,要迈入2025蛇年了,提前祝大家蛇年快乐,学有所成,本文博主将带领大家使用Springboot和Vue搭建一个酒店管理系统,受限于本文篇幅内容,本文罗列仅有部分简单示例内容,主要包括前后端示例源码。通过本文,你将大致掌握如何快速搭建一个现代化的Web应用。如果您想学习完整开发方案,包括项目源码+数据库文件+全套环境资源+代码部署视频教程+开发文档】获取学习资源,支持远程安装调试:一、项目背景随着互联网技术的不断发展,酒店行业对信息化的需求越来越高。

暴力码农的博客 1322

vue3 全局引入 mixins方法 并使用

创建 mixin文件 mixins.js const baseMixin = { data() {}, methods: { btnClick() { console.log('点击事件触发'); }, }, }; export default baseMixin; 在入口文件 main.js 中引入 import mixin from "./mixins/index.js"; app.mixin(mixin) 页面中使用 <template>..

云未然的博客 5998

ESP32搭配LVGL显示图片的两种方法详解:内部存储 vs 外部文件

本文详细介绍了ESP32搭配LVGL显示图片的两种方法:内部存储与外部文件。内部存储方案适合快速响应的小图片,而外部文件方案则适用于需要灵活更新和大容量图片的场景。通过对比分析,帮助开发者根据项目需求选择最优方案,提升嵌入式系统的UI性能。

weixin_30399821的博客 518

从OAuth到DID:Web4.0身份验证协议的技术演进图谱

在数字身份体系从Web2.0向Web4.0跨越的进程中,身份验证协议正经历着从中心化授权到自主主权的范式转移。本文通过对比OAuth 2.0、OpenID Connect等传统方案与W3C DID、ION等去中心化协议的技术架构,揭示身份验证技术在性能、安全、隐私三大维度的代际差异。基于对GitHub、欧盟数字身份钱包等典型系统的实测数据分析,量化评估中心化授权服务器的单点故障风险与DID链上验证的吞吐量瓶颈。结合零知识证明、分布式密钥管理等前沿技术,为开发者提供面向Web4.0的渐进式身份架构迁移策略。

水务人 833

Vue3:探讨一下mixin

Vue3中的mixin Vue2中的Mixin mixin Mixin Composition API

大香蕉的博客 1万+

基于STM32的最简易蓝牙遥控小车

基于STM32的蓝牙遥控小车,基于HAL库编写代码,具有移动功能,读者可自行添加其他扩展功能。按下状态的对应关系:2前进,4左转,5停止,6右转,8后退,松开状态都是5,都选择16进制。首先按照小车的图纸把小车的机械部分装好。做这个小车的成本在200元左右,包括焊接设备,杜邦线等。

weixin_43469377的博客 1万+

[vue] mixin(混入)

mixin(混入),复用配置 功能:可以把多个组件共用的配置提取成一个混入对象 使用方式: 第一步定义混合: { data(){....}, methods:{....} .... } 第二步使用混入: ​ 全局混入:Vue.mixin(xxx) ​ 局部混入:mixins:['xxx'] 可以复用方法 School.vue <template> <div> <h2 @click="showName">学校名称:{{name}

qq_14993591的博客 312

C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) 教程 . 更新ing

写在前面  依旧是参考借鉴了 浙江大学 温老师 的视频教程,很不错,在中国大学MOOC上,强力推荐!  虽说有借鉴,但是能保证的是每一行代码都是我自己经过理解后手敲出来的,所以才来做了这部分的教程。  最后,带 * 字符是我个人觉得可以添加的功能,按理来讲是可以不看的,而且大概率是可以有更好的改进的。  PS: 文章还在更新,如果文字蓝了(有超链接),说明写完了,如果没蓝,说明我在开军舰.jpg 源代码:  这里→源代码. 第一步:前置工作  先说一下每一篇都会出现 main 函数的,stage1 只是给没

weixin_47287635的博客 525

进阶篇第8节:寄存器压力——寄存器溢出对性能的影响及优化

**摘要:GPU寄存器是最快的存储单元(1周期访问),但数量有限。过高的寄存器使用会导致溢出(变量存入慢速本地内存)或降低占用率(减少并发线程数),严重影响性能。优化方法包括复用变量、使用共享内存替代寄存器数组、限制寄存器数量(--maxrregcount)等。实际测试显示,将寄存器使用从48个降至24个可使性能提升37%。分析工具如Nsight Compute可帮助检测寄存器压力。面试常见问题涉及寄存器溢出的检测与优化策略。

PeterPan的博客 95

Vue的mixin(混入)

可以把多个组件公用的配置提取成一个混入对象。mixin: 混入,也可以称混合。混入:两个组件共享一个配置。

路人的博客 610

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第一节-ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP互相通信

本节实现ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP通信。具体来说,本节使用串口CH340(USB-TTL)连接正点原子ATK-ESP8266 WIFI模块,通过AT命令实现连接原子云服务器与手机APP互相通信,实现硬件设备(WIFI模块)与云服务器和手机APP的互相通信。后面章节不用串口CH340(USB-TTL),通过编写单片机程序实现数据远程互相通信,并介绍手机APP的程序设计。单片机任意款即可,STM32F1系列,F4系列,H系列等都可以。本系列为(手把手实

嵌入式阿齐Archie 8419

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

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

高大志leo的博客 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

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

Vue中mixin混入

混入 我们先来看看vue官方是怎么介绍的 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 官方文档说的很详细,通俗易懂的话来说一个.vue文件由template,script,style组成,混入的方法可以把mixin这个对象和.vue文件的script里面的内容“混入”(mixin对象的结构和.vue的script里面的结构一样),既此组件既可以调用组件内

前端小99的博客 2187

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

vue之混入(mixin)的详解

一、前言: 混入的作用:可以省很多代码(高类聚低耦合),还方便维护; 个人理解:混入就是在一个公共的实例中写入公共的数据或者方法,这样的话vue会自动注入到(全局混入会注入到每一个实例组件中)、(单页面引入的会注入到引入的组件中)。混入的对象也就是mixin中可以写入的内容包含任意组件选项- - - - - -(也就是说你在export default { } 里边的内容都是可以混入的)有一种类似公共方法的感觉,但是可以写公共的data里面的数据,这一点比较方便。 二、混入的方式一:单页面引入混入 首先创建

小傲哥哥的博客 8030

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

vue2之混入(mixin)

Vue 2 的混入(Mixin)是一种在 Vue 组件中分发可复用功能的方式。通过混入,你可以将一些通用的组件选项(如数据、方法、计算属性、生命周期钩子等)提取到一个混入对象中,并在多个组件中重用这些选项,从而实现代码复用和组织。

mez_Blog的博客 2142

Vue mixin 混入

创建一个 mixin 混入对象是很简单的,只是我们需要注意的是,配置的键值对,只能是创建组件时传入的配置项,如果,你传了一个 其他不存在的属性 ,组件接收之后,是不会对其解析的,就相当于你在组件内部,定义了一个不存在属性,Vue 底层是不会管这个玩意的。这就看出来很多余了。其次、我们创建的 mixin 对象,在组件中引用的时候,mixin 对象 中的键值对会 混入 该组件的配置详项中,至于是怎么混入的,下面在讲。创建了一个 mixin 对象之后,组件需要使用的时候,就和引入公共组件和公共方法一样。

qq_40792800的博客 736

【Vue】vue中的mixin混入

混入(mixin)提供了一种非常灵活的方式,来分发 Vue组件中的可复用功能。一个混入对象可以包含任意组件选项(如data、methods、mounted等等)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。mixin: 将多个组件相同的逻辑,抽离出来复用;使用mixin混入data: 组件 data 优先级高于 mixin混入的 data;使用mixin混入钩子: 先执行 mixin的钩子,再执行组件里的钩子;

m0_63779088的博客 1410

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

虽互不曾谋面,但希望能和您成为笔尖下的朋友以读书,技术,生活为主,偶尔撒点鸡汤不作,不敷衍,意在真诚吐露,用心分享点击左上方,可关注本刊标星公众号(ID:itclanCoder)如果不知道如何操作点击这里,标星不迷路前言我们在实际项目开发中,有很多基本相似功能模块,只是操作显示数据不同,很多逻辑和配置都是相同的在Vue项目里,每个单文件组件都是一个模块组件,每个组件都有自...

itclanCoder 1313

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

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

m0_70683410的博客 6308

vue混入(mixin)的详解

混入(mixin)提供了一种非常灵活的方式,来分发vue组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 1.钩子函数 同名钩子函数将会混合为一个数组,都将被调用到,但是混入对象的钩子将在组件自身钩子之前调用。 var mixin = { created: function () { console.log('混入对象的钩子被调用') } } new Vue({ mixins: [mixin], cre

qq_40431896的博客 1万+

Vue 混入(mixin)详细介绍

混入 (mixin) : 是一种分发Vue组件中可复用功能的非常灵活的一种方式。混入对象(mixins)是一个js对象,它可以包含我们组件中script项中的任意功能选项,如data、components、created、methods 、computed、watch等等。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

weixin_48780364的博客 2626

Vue混入mixin介绍

Vue混入mixin介绍 mixin官方解释: 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。 一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项 通俗解释: 日常开发中,经常会遇到不同组件中会出现需要一些相同的或者相似的代码,这些代码的功能相对独立。可以利用vue的mixin将功能相同的或者相似的提出来,方便代码复用,也有利于代码维护。 一、局部组件混入 二、 ...

happy81997的博客 542

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

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

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

vue 混入(mixin)的使用

当组件使用了mixin时,mixin中的生命周期函数会先执行,然后在执行组件中的生命周期。mixin对象里的(components、methods、computed、data)这些选项,混入组件时选项会被合并,重名冲突时优先采用组件中定义的数据。mixin中定义的方法和参数在各组件中不共享,即当前组件对mixins的属性的修改,其他也引用了这个mixins的组件不会受影响;mixin中定义的生命周期函数会比引用组件的生命周期先执行,会和组件中定义的methods,created等选项合并调用;...

weixin_44690156的博客 8531
上一篇: 【JS基础】位运算符
下一篇: 【Vue】动态设置元素类以及样式
cannotbecounted
博客等级 码龄7年 101粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值