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命名冲突的错误

结尾

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

目录
相关文章
|
中间件 API
nuxt3:我们开始吧-开发-配置-部署(二)
nuxt3:我们开始吧-开发-配置-部署(二)
632 0
|
小程序 JavaScript 开发者
微信小程序-强大的block标签
微信小程序可有意思了
1761 0
|
11月前
|
JavaScript
vue3,使用watch监听props中的数据
【10月更文挑战第3天】
3564 2
|
8月前
|
人工智能 开发者 C++
通义灵码流式补全性能优化场景DEMO
通义灵码流式补全性能优化DEMO展示了在处理大段代码时的高效展示方案。通过在VS Code中实现流式补全,模型可在500毫秒内开始展示代码,首包返回后逐行流式输出,大大减少了开发者的等待时间,提升了coding流畅度,让AI更好地适应开发者需求。
107 0
|
JavaScript 前端开发 索引
js的循环中foreach、for in和for of的区别
js的循环中foreach、for in和for of的区别
459 0
|
JavaScript
成功解决:_vm.Login is not a function
这篇文章解释了在Vue.js应用中遇到"_vm.Login is not a function_"错误的原因,通常是因为尝试调用的_login_函数没有在当前组件的方法中定义。解决这个问题的方法是确保_login_函数在组件的方法对象中定义,并可以正确调用,同时检查函数名的拼写和调用语法是否正确。
|
11月前
|
编解码 前端开发 UED
|
SQL 缓存 Java
Hive 之 UDF 运用(包会的)
Hive的UDF允许用户自定义数据处理函数,扩展其功能。`reflect()`函数通过Java反射调用JDK中的方法,如静态或实例方法。例如,调用`MathUtils.addNumbers()`进行加法运算。要创建自定义UDF,可以继承`GenericUDF`,实现`initialize`、`evaluate`和`getDisplayString`方法。在`initialize`中检查参数类型,在`evaluate`中执行业务逻辑。最后,打包项目成JAR,上传到HDFS,并在Hive中注册以供使用。
659 2
|
11月前
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
135 0
|
JSON JavaScript 前端开发
Uncaught SyntaxError: Invalid or unexpected token
Uncaught SyntaxError: Invalid or unexpected token
283 0