当前位置: 首页 > ops >正文

vue之混入mixin

混合
基本概念‌
Mixin 是 Vue 中用于‌复用组件逻辑‌的机制,可将多个组件的公共选项(如 data、methods、生命周期钩子)抽离为独立模块,再混入到组件中。
比如我有两个组件同时用到了同一个数据name,同一个方法showAddress
把这写公共的部分可以提取出来,放在一个公共的hunhe.js文件中,

‌2. 核心特性‌
‌选项合并策略‌

data:组件数据优先,Mixin 数据次之(递归合并)。
methods/components:同名时组件覆盖 Mixin。
生命周期钩子:Mixin 钩子先执行,组件钩子后执行。
‌全局与局部混入‌

javascript
// 局部混入(组件内)
const myMixin = { methods: { log() { console.log(‘Mixin’); } } };
export default { mixins: [myMixin] };

// 全局混入(慎用!影响所有组件)
Vue.mixin({ created() { console.log(‘Global Mixin’); } });
‌3. 适用场景‌
‌逻辑复用‌:如表单验证、日志记录等通用功能。
‌跨组件共享‌:多个组件需相同生命周期逻辑(如埋点)。
‌4. 潜在问题与替代方案‌
‌命名冲突‌:需规范 Mixin 命名(如加前缀 mixin_)。
‌维护困难‌:过度使用会导致代码难以追踪,推荐优先使用‌组合式 API‌(Vue 3)。
5.实例
mixin.js

export const hunlu={data(){return {name:'我就是name'}},}export const hunlu2={methods: {showAddress(){alert(this.address);}},
}

school.vue

<template><div><div>{{ name }}</div><div @click="showAddress">{{ address }}</div></div>
</template><script>
import {hunlu,hunlu2} from '@/utils/mixin.js'
export default {data() {return{address:'北京西二旗'}},mixins:[hunlu,hunlu2]
}
</script>

student.vue

<template><div><div>{{ name }}</div><div @click="showAddress">{{ address }}</div></div>
</template><script>
import {hunlu,hunlu2} from '@/utils/mixin.js'
export default {data() {return{address:'北京三里屯'}},mixins:[hunlu,hunlu2]
}
</script>

父组件:

<template><div class="app-container"><school></school><student></student></div>
</template>
import school from './components/school.vue'
import student from './components/student'components: { AddMask,school,student },

截图:在这里插入图片描述

http://www.xdnf.cn/news/7913.html

相关文章:

  • 禾纳EAT3152AP MOS电源芯片PIN TO PIN替代泰德TDM3307/2307方案
  • DDoS防护实战——从基础配置到高防IP部署
  • 86.评论日记
  • 二进制编码、定点数与浮点数
  • 【版本控制】Perforce P4服务器安全配置指南(附常见漏洞、详细配置参数)
  • IEEE Transactions on Wireless Communications 2025年1月-5月论文速览
  • 深入理解 Python 的with语法:资源管理的优雅解决方案
  • C++:array容器
  • Linux 内核探秘:从零构建 GPIO 设备驱动程序实战指南
  • MySQL主键与外键详解:数据关系的基石与守护者
  • 助力 FPGA 国产化,ALINX 携多款方案亮相深圳、广州“紫光同创 FPGA 技术研讨会”
  • 【时时三省】Python 语言----文件
  • java 通过IO控制台输入内容写入到文本当中
  • SQL窗口函数破解:如何优雅获取各分组极值
  • docker中部署Universal Media Server (UMS)
  • Go语言打造:超高性能分布式唯一ID生成工具
  • 关于FPGA 和 ASIC设计选择方向的讨论
  • VoiceFixer语音修复介绍与使用
  • 软件工程(六):一致性哈希算法
  • 【Redis】AOF日志的三种写回机制
  • 一文详解并查集:从基础原理到高级应用
  • MAYA 转换为 STP:深度技术解析与全流程实践指南
  • OpenCV CUDA模块特征检测与描述------创建一个 盒式滤波器(Box Filter)函数createBoxFilter()
  • GPU P-State 模式说明
  • MCP入门介绍
  • 【VS2017】cpp 文件字符编码方式转换
  • 进阶知识:理解函数装饰器@wraps()的返回值逻辑 和 闭包的深度解析
  • 力扣热题100, 力扣.167两数之和II 力扣80.删除有序数组中的重复项力扣99.恢复二叉搜索树力扣.110平衡二叉树
  • 【项目管理】项目管理中的”三边、六拍、四没和只谈“
  • 软件是什么?