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

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 },

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

相关文章:

  • 蓝牙host和controller
  • 变电站综合自动化系统
  • lanqiaoOJ 4185:费马小定理求逆元
  • 强化学习入门:RL开发框架Gym简介
  • Docker run命令-p参数详解
  • 计算机网络-MPLS VPN报文转发
  • vue3中RouterView配合KeepAlive实现组件缓存
  • JavaWeb 开发流程
  • 阿里发布扩散模型Wan VACE,全面支持生图、生视频、图像编辑,适配低显存~
  • LeetCode-链表-反转链表+链表的中间结点
  • Android Handler/Looper线程管理实战攻略:从零到企业级开发
  • Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解
  • 【面试题】Session 和 Cookie 的区别
  • C++之内存分配new与 delete
  • 云计算与大数据进阶 | 28、存储系统如何突破容量天花板?可扩展架构的核心技术与实践—— 分布式、弹性扩展、高可用的底层逻辑(下)
  • 计算机网络学习(一)—— OSI vs TCP/IP网络模型
  • 【Linux】第二十五章 运行容器
  • 量子计算与云计算的融合:技术前沿与应用前景
  • COMPUTEX 2025 | 广和通创新解决方案共筑AI交互新纪元
  • Ubuntu 20.04卸载并重装 PostgreSQL
  • wordpress搭建多个购物网站/学生个人网页制作素材
  • 聊城高新区建设局网站/湖南关键词优化快速
  • 网站建设那家好/网络营销好学吗
  • 怎么申请公司网址/宁波seo排名外包
  • 网上购物的网站有哪些/推广软文200字
  • 免费网站建设协议/友情链接平台网站