一、什么是Mixin?

Mixins(混入):当我们存在多个组件中的逻辑或者配置(数据或者功能很相近),我们就可以利用mixins将公共部分提取出来,通过 mixins封装的函数,且组件调用他们是不会改变函数作用域外部。减少代码冗余度,也可以让后期维护起来更加容易。

注意:提取的是逻辑或配置,而不是HTML代码和CSS代码。

Mixins(混入):官网解释请看这里https://v2.cn.vuejs.org/v2/guide/mixins.html

如何使用Mixin 定义mixin

mixins它就是一个对象,这个对象里面可以包含Vue组件中的一些常见配置,如data、methods、created等等。在我们的项目中新建mixins文件夹,然后新建index.js文件存放mixin代码。

// src/mixins/index.js
export const mixins = {data() {return {};},computed: {},created() {},mounted() {},methods: {},
};

mixins使用

export const mixins = {data() {return {msg: "我是mixin中的msg",};},computed: {},created() {console.log("mixin中的created生命周期函数");},mounted() {console.log("mixin中的mounted生命周期函数");},methods: {clickMe() {console.log("mixin中的点击事件");},},
};

局部混入

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

A.vue页面(父组件)使用

<template><div><van-button @click="handleChangeMixin">父组件修改mixins</van-button><div>mixins:{{msg}}</div><div><hr></div><mixinsDemo></mixinsDemo></div>
</template>
<script>import {mixins} from "@/mixins/index";import mixinsDemo from "@/components/common/mixinsdemo";export default {mixins: [mixins],components: {mixinsDemo},data() {return {};},created() {},methods: {handleChangeMixin() {console.log("父组件调用minxi数据", this.msg);this.msg = "父组件原mixins的msg已被改了";console.log("父组件更改后的msg:", this.msg);}},};
</script>
<style scoped></style>

B.vue页面(子组件)使用

<template><div><van-button @click="handleMixin">子组件修改mixins</van-button><div>mixins:{{msg}}</div></div>
</template>
<script>import {mixins} from "@/mixins/index";export default {mixins: [mixins],data() {return {};},components: {},created() {},methods: {handleMixin() {console.log("没有修改前的msg", this.msg);this.msg = "子组件原mixins的msg已被改了";console.log("子组件更改后的msg:", this.msg);}},};
</script>
<style scoped></style>

全局混入

main.js中全局引入mixins

import Vue from "vue";
import App from "./App.vue";
import { mixins } from "./mixin/index";
Vue.mixin(mixins);Vue.config.productionTip = false;new Vue({render: (h) => h(App),
}).$mount("#app");

使用:直接注释上面A、B组件中的mixins引入,可以看到效果和局部混入没有任何区别。

注意:谨慎使用全局混入,它会影响每个单独创建的 Vue 实例 (包括第三方组件),避免重复应用混入

什么是Mixin?如何使用Mixin 定义mixin相关推荐

  1. mixin模式 python_python中的Mixin设计模式

    1.什么是Mixin设计模式 mixin设计模式可以看做是多继承的一种.那么首先,咱们谈谈为什么会出现多继承这种语法. 汽车和飞机他们都同属于交通工具,但飞机可以飞行,汽车无法做到,所以,飞行这个行为 ...

  2. mixin(公共样式定义)

    minxin公用样式 src/scss/_mixin.scss //宽高 @mixin wh($width, $height) {width: $width;height: $height;displ ...

  3. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 @Mixin 注解进行方法注入 | Mixin 混合多个类优先级分析 )

    文章目录 一.使用 Mixin 混合进行方法注入 二.Mixin 混合多个类优先级分析 一.使用 Mixin 混合进行方法注入 在上一篇博客 [Groovy]MOP 元对象协议与元编程 ( 方法注入 ...

  4. Vue3(撩课学院)笔记04-高阶API-mixin混入,mixin自定义属性,全局配置mixin,自定义全局指令,自定义局部指令,自定义指令传入数据,teleport传送门

    1.Mixin混入 将课复用代码独立出来用于复用 通过创建Mixin对象将复用代码放在Mixin对象中 在根组件中添加mixins属性,通过数组来存放多个minxin对象(也就是把minin内容混入根 ...

  5. mixin模式 python_Python中的mixin模式

    MixIn和继承的关系 面向对象三大特征,继承.封装.多态.第一次看到MixIn的时候,弄不懂这个和继承有什么关系/区别.首先,继承是父亲和儿子的关系,而python minxin是混入的意思.虽然, ...

  6. mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求

    一个免费的闪电般快速的数字资产端对端交易网络. 01.概况 Mixin 由一个理论上永久的内核.许多动态域和不同的多用途域扩展组成,以构成扩展的星形拓扑结构. Mixin Network 已经支持 B ...

  7. Python Mixin技术介绍

    1. Mix-in技术介绍 Mixin可以译为混入,就是在不改变原对象的情况下对其进行扩展.本文介绍了在 Python 语言中,如何实现Mixin技术,及安装的相应技巧. 1.1. 什么是Mix-in ...

  8. python采用那种编程模式_使用Mixin设计模式进行Python编程的方法讲解

    class BetterSimpleItemContainer(object, DictMixin): def __getitem__(self, id): return self.data[id] ...

  9. 使用 SASS Mixin 编写 clean code

    原文:LEVERAGING SASS MIXINS FOR CLEANER CODE 毫无疑问,Sass 最强大和最有价值的特性之一是能够将现有代码打包成称为 mixins 的可重用代码块. Mixi ...

最新文章

  1. 面向JavaScript开发人员的Adobe AIR与Dreamweaver
  2. 你听过BA、DA、AA、TA么?全网疯传的架构实践全景图!
  3. 学习规划|机器学习和NLP入门规划
  4. 阅读替换净化规则_usmile电动牙刷头适配Y1/Y4/45度小白刷大理石一号刷P1替换激泡...
  5. 怎么用计算机截图快捷键,电脑怎么截图截屏 电脑截图的快捷键是什么
  6. Spark SQL(十)之基于物品的推荐公式
  7. Delphi字符串转日期,强大到窒息,VarToDateTime解决了困扰很久的小问题
  8. 【广告技术】下个月会有多少用户看到洗发水广告?最先进的张量分解模型给你最好的答案
  9. UVA-572-搜索基础题
  10. 导入新工程,提示“Migrate Project to Gradle?”
  11. MFSK以及MFSK和MPSK的对比
  12. 大小端详解(判断+转换)
  13. Swift开发:使用SwiftyJSON解析JSON数据
  14. rdkit Recap、BRICS分子片段拆分与合成
  15. editormd生成博客编辑页面
  16. Flutter6,移动设备开发网易云音乐app开发说明
  17. Datawhale学习记录 动手学数据分析(以Kaggle泰坦尼克号为案例)——Task01数据加载及探索性数据分析
  18. 回顾一年的工作历程_回顾历程、总结经验、展望未来
  19. git pull 报错:‘info: detecting host provider for’
  20. 爬虫新手入门(二):爬取一本言情小说的内容

热门文章

  1. Android开发了解这些自然无惧面试,全套教学资料
  2. 打开计算机硬盘竖着两列,怎么把excel的两行改成列
  3. 计算机音乐乐谱童话镇,童话镇曲谱
  4. 《跟二师兄学Nacos吧》第1篇 Nacos客户端服务注册源码分析
  5. cass软件yy命令_CASS常用命令大全
  6. 苹果:将下架“三年未更新且下载量少“的APP
  7. 中国康复医院产业经营效益探析与运营态势调研报告2022版
  8. 教培机构如何选择自己得私域玩法
  9. html实现导航下拉菜单绝对定位,纯CSS导航下拉效果,神奇的定位与显示属性
  10. 盼盼github入门到精通