vue2_mix混入的用法

简介: vue2_mix混入的用法

@[TOC]

背景

多个vue文件出现大量重复的函数和生命周期处理时使用mix混入

minx混入

当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
vue2官网案例

// 定义一个混入对象
var myMixin = {
   
   
  created: function () {
   
   
    this.hello()
  },
  methods: {
   
   
    hello: function () {
   
   
      console.log('hello from mixin!')
    }
  }
}

// 定义一个使用混入对象的组件
var Component = Vue.extend({
   
   
  mixins: [myMixin]
})

var component = new Component() // => "hello from mixin!"

查看vue2的mixins来源
options api
image.png

可以混入vueComponent的组件
image.png

image.png

可见mininx混入的类型为一个vue的类型

使用

1.定义了一个mix.js

声明 mixName变量和mixFunc的函数

export default {
   
   
  data () {
   
   
    return {
   
   
      mixName: 'yma16'
    }
  },
  methods: {
   
   
    mixFunc () {
   
   
      console.log('mix的作用域 this', this)
      this.$message.info('mix的mixFunc方法')
    }
  }
}

2. 定义一个组件混入mix

mixins混入定义的mix组件

<template>
  <div class="container">
    <h1>{
   
   {
   
    msg }}</h1>
    <el-divider>mix</el-divider>
    <el-button @click="say">
     当前组件的say方法
    </el-button>
    <el-divider>mix</el-divider>
    <el-button @click="mixFunc">
     mix的方法
    </el-button>
  </div>
</template>

<script>
import mix from './mix'
export default {
   
   
  name: 'StudyMix',
  mixins: [mix],
  data () {
   
   
    return {
   
   
      msg: 'mix 混入'
    }
  },
  methods: {
   
   
    say () {
   
   
      console.log('当前组件的作用域 this', this)
      this.$message.info('组件的say方法')
    }
  }
}
</script>

mix的同享组件作用域this相同

对比组件和混入的this
image.png

验证node的tag一样
image.png

this打印的值相同

使用场景

举个我工作中实际应用到的场景

  1. 表格是使用比较多的,可以提取表格的打印和获取选中行的方法到mix
  2. 文件下载的方法封装到一个mix去调用

注意点:mix中调用的变量要确保在组件中存在,使用不熟练很容易出现undefined命名冲突的错误

结尾

感谢阅读,如有问题,欢迎指正!

目录
相关文章
|
小程序 JavaScript 开发者
微信小程序-强大的block标签
微信小程序可有意思了
1942 0
|
中间件 API
nuxt3:我们开始吧-开发-配置-部署(二)
nuxt3:我们开始吧-开发-配置-部署(二)
707 0
|
小程序
小程序踩坑:Setting data field "xxxx" to undefined is invalid.
小程序踩坑:Setting data field "xxxx" to undefined is invalid.
627 0
|
JavaScript 前端开发 索引
js的循环中foreach、for in和for of的区别
js的循环中foreach、for in和for of的区别
546 0
|
12月前
|
人工智能 开发者 C++
通义灵码流式补全性能优化场景DEMO
通义灵码流式补全性能优化DEMO展示了在处理大段代码时的高效展示方案。通过在VS Code中实现流式补全,模型可在500毫秒内开始展示代码,首包返回后逐行流式输出,大大减少了开发者的等待时间,提升了coding流畅度,让AI更好地适应开发者需求。
242 0
|
数据可视化 Python Windows
Matplotlib输出中文显示的2种解决方案
Matplotlib输出中文显示的2种解决方案
1077 0
|
存储 安全 算法
Java中的数据加密与数字签名技术
Java中的数据加密与数字签名技术
|
SQL 缓存 Java
Hive 之 UDF 运用(包会的)
Hive的UDF允许用户自定义数据处理函数,扩展其功能。`reflect()`函数通过Java反射调用JDK中的方法,如静态或实例方法。例如,调用`MathUtils.addNumbers()`进行加法运算。要创建自定义UDF,可以继承`GenericUDF`,实现`initialize`、`evaluate`和`getDisplayString`方法。在`initialize`中检查参数类型,在`evaluate`中执行业务逻辑。最后,打包项目成JAR,上传到HDFS,并在Hive中注册以供使用。
813 2
|
前端开发 UED
CSS clip-path 属性
CSS clip-path 属性
744 0