Mixin 混入

2023-09-18 17:04:58

Mixin 混入

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

怎么理解呢,就是每一个组件都会有一些选项 data、computed、methods …对吧,假设我有 10 个组件,每一个组件内都有一个相同的 methods 方法,那我就将这个可复用的方法抽离到 mixin 文件中,然后在引入进来。这样我就不需要每个组件都编写重复的 methods 方法了,data、mounted 等等的选项也是如此。

基础案例

hello-world.vue

<template>
    <div class="home">
        {{ name }}
    </div>
</template>

<script>
import mixin from './mixin.js'

export default {
    mixins: [mixin],
    data() {
        return {}
    }
}
</script>

mixin.js

export default {
    data() {
        return {
            name: 'xiaoming'
        }
    }
}

预览效果

在这里插入图片描述

选项合并

因为混入会把它本身的选项和组件的选项一起合并,那么也就是说会发生一些冲突,例如混入中的文件含有 name 属性,而组件的选项 data 中也存在 name 属性,那页面渲染的时候会以哪个为准呢?接下来进行测试一下。

hello-world.vue

<template>
    <div class="home">
        {{ name }}
    </div>
</template>

<script>
import mixin from './mixin.js'

export default {
    mixins: [mixin],
    data() {
        return {
            name: 'libai'
        }
    }
}
</script>

mixin.js

export default {
    data() {
        return {
            name: 'xiaoming'
        }
    }
}

预览效果
在这里插入图片描述

可以看出来是以组件选项的为准,这里只举例了选项 data 的冲突,其他选项 methods、computed、mounted 也是如此,小伙伴们可以自行去测试一下。在开发的时候需要多留意一下冲突的情况。

原文链接:菜园前端

更多推荐

React 全栈体系(七)

第四章Reactajax一、理解1.前置说明React本身只关注于界面,并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax库(或自己封装)2.常用的ajax请求库jQuery:比较重,如果需要另外引入不建议使用axios:轻量级,建议使用封装X

Kotlin语言基础(二)-变量和数据类型

Kotlin语言基础-变量和数据类型一、Kotlin的变量Kotlin变量有两种形式var(variable)和val(value,取值)val定义只读量,一旦创建,其值不会发生变化例:vala=23那么对于a对应的值就只能是23,不会发生变化。如何试图对a重新赋值都会导致编译错误。var定义可变的变量,可以多次赋值修

【数据结构】堆的顺序结构及实现

目录一,堆的顺序结构二,堆的概念及结构三,堆的实现3.1堆的结构3.2堆的初始化3.3堆的插入数据3.3堆的删除数据3.4堆的取顶数据,返回堆数据大小,判断非空3.5堆的销毁四,总代码一,堆的顺序结构普通的二叉树是不适合用数组来存储的,因为可能存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们把堆(一种

Mybatis学习笔记8 查询返回专题

Mybatis学习笔记7参数处理专题_biubiubiu0706的博客-CSDN博客1.返回实体类2.返回List<实体类>3.返回Map4.返回List<Map>5.返回Map<String,Map>6.resultMap结果集映射7.返回总记录条数新建模块依赖目录结构1.返回实体类如果返回多条,用单个实体接收会出异

RHEL7 配置 LVM Mirror 创建共享卷

文章目录前言1.配置LVM镜像卷1.1.创建PV1.2.创建VG1.3.创建LV1.4.查看LV1.5.格式化文件系统1.6.创建挂载点并挂载1.7.写入测试数据2.切换LVM共享卷2.1.计划内切换2.1.1.检查I/O流量2.1.2.节点一卸载挂载点2.1.3.节点一禁用LV2.1.4.节点一禁用VG2.1.5.节

AI视频剪辑:批量智剪技巧大揭秘

对于许多内容创作者来说,视频剪辑是一项必不可少的技能。然而,传统的视频剪辑方法需要耗费大量的时间和精力。如今,有一种全新的剪辑方式正在改变这一现状,那就是批量AI智剪。这种智能化的剪辑方式能够让你在短时间内轻松剪辑大量视频,省时又省力。首先,要在浏览器中搜索并下载"固乔智剪软件"。这款软件基于人工智能技术,能够自动化地

模拟电子技术一|发展史

上世纪40年代:1946年宾夕法尼亚大学造出了第一台电子管的计算机缺点:体积大,功耗高,一个电子管的体积像灯泡一样大。上世纪50年代半导体材料替代了真空电子管,降低功耗,减少体积。一块半导体材料上:可以放很多个电子器件,不需要任何的连线和外接。集成电路的出现把成百上千个元器件放在一块芯片上,外面进行封装,体积没有变大。

实现安全的服务通信:探索如何使用服务网格来确保服务间的安全通信

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

低代码技术推动能源行业数字化转型,服务商模式带来转型新商机

“新能源企业通过数字化转型不仅可以提高企业的运营效率和市场竞争力,还可以创新商业模式、提高能源生产效率和可持续性、优化资源配置并适应市场需求。选择百数的服务商模式,不仅可以解决我们想实现数字化转型的需求,还让我们多了一个开展新业务的机会,多了一个打开新能源行业市场的机会。”——跨境贸易商会会长、浙江浦江云晶科技有限公司

Netty(二)NIO-入门

Netty入门1.概述1.1NettyNetty是一个异步的,基于事件驱动的网络应用框架,用于快速开发可维护,高性能的网络服务器和客户端Cassandra,Spark,Hadoop,RocketMQ,ElasticSearch,gRPC,Dubbo,Spring5.x,Zookeeper都是基于netty开发。1.2N

npm常用命令系统介绍

npm常用命令系统介绍npmhelpnpminitpackage.json文件package.json文件属性说明默认package.json文件--参数[-yes|-y]设置package.json中字段的默认值package-lock.json文件npm[config|c]设置源npm[install|i]可选参数

热文推荐