返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue混入mixin的介绍及理解
  • 915
分享到

vue混入mixin的介绍及理解

vuemixinvuemixin原理 2022-11-13 14:11:20 915人浏览 薄情痞子
摘要

目录一、mixin是什么二、使用场景三、原理分析四、mixin的理解一、mixin是什么 mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而

一、mixin是什么

mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类;

mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂。

本质就是一个js对象,可以包含组件中的任意功能选项,如data、components、methods、creaded、computed以及生命周期函数等等。

只需要将共用的功能以对象的方式传入mixins选项中,当组件使用mixins对象时所有mixins对象的对象都将被混入该组件本身的选项中来。

局部混入

import mixin1 from './mixin1'
export default {
    // mixins:[mixin1]
}

全局混入

Vue.mixin({
  created: function () {
      console.log("全局混入")
    }
})

注意:当组件存在与mixin对象相同的选项的时候,进行递归合并的时候组件的选项会覆盖mixin的选项;但是如果相同的选项为生命周期钩子的时候,会合并成一个数组,先执行mixin的钩子,再执行组件的钩子。

二、使用场景

开发中,经常会遇到在不同的组件中用到相同或者相似的代码,这些代码的功能相对独立;

例子

控制元素是否显示,都会使用v-show,如果两个组件中使用的变量和规则都相同,就可以把控制元素显示单独封装成一个mixin.js文件。

modal.vue中

<template>
  <div id="app">
    <button @click="show()">modal显示与隐藏</button>
    <div v-show="isshowing">modal显示</div>
  </div>
</template>
<script>
import mixin1 from './mixin1'
export default {
    mixins:[mixin1]
}
</script>

tooltip中

<template>
  <div id="app">
    <button @click="show()">tooltip显示与隐藏</button>
    <div v-show="isShowing">tooltip显示</div>
  </div>
</template>
<script>
import mixin1 from './mixin1'
export default {
    mixins:[mixin1],
}
</script>

mixin1.js中

export default {
    data() {
        return {
            isShowing:true
        }
    },
    methods: {
        show() { 
            this.isShowing = !this.isShowing
        }
    },
}

三、原理分析

  • 优先递归处理mixins;
  • 先遍历合并parent中的key,调用mergeField方法进行合并,然后保存在变量options;
  • 再遍历child,合并补上parent中没有的key,调用mergeField方法进行合并,保存在变量options;
  • 通过mergeField函数进行合并;
  • 合并策略包括:替换型、合并型、队列型、叠加型;
  • 替换行策略有:props、methods、inject、computed;
  • 合并型策略是data,通过set方法进行合并和重新赋值,就是将新的同名参数替代旧的参数;
  • 队列型策略有生命周期函数和watch,原理是将函数存入一个数据,然后正序遍历依次执行。
  • 叠加型有component、directives、filters,通过原型链进行层层的叠加。

四、mixin的理解

回答:mixin是一种类,在vue中就是js文件,主要的作用是作为功能模块引用。因为在项目中,可能不同组件会有相同的功能,比如控制元素的显示和隐藏,如果他们的变量和规则也完全相同的话,就可以把这个功能单独提取出来,放在mixin.js中,再引入,就可以实现一样的功能了。引入的方法也分为全局混入和局部混入,局部混入就是在每个组件中引入,全局混入就是在main.js中通过Vue.mixin()引入。

到此这篇关于vue混入mixin的介绍及理解的文章就介绍到这了,更多相关vue mixin内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue混入mixin的介绍及理解

本文链接: https://lsjlt.com/news/171865.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue混入mixin的介绍及理解
    目录一、mixin是什么二、使用场景三、原理分析四、mixin的理解一、mixin是什么 mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而...
    99+
    2022-11-13
    vue mixin vue mixin原理
  • Vue中混入mixin的用法介绍
    目录基础使用选项合并自定义合并规则全局混入总结什么是混入? 混入通过注入配置项到vue实例用来提升复用性 基础使用 const myMixin = { creat...
    99+
    2022-11-13
    Vue mixin Vue 混入
  • Vue之mixin混入详解
    目录局部混入全局混入总结  局部混入 <template> <div> <h2 @click="showName">学生姓名:{{...
    99+
    2024-04-02
  • 关于vue混入(mixin)的解读
    目录vue混入(mixin)的解读1.钩子函数2.普通方法合并3.局部混入4.全局混入vue中mixin混入注意事项vue混入(mixin)的解读 混入(mixin)提供了一种非常灵...
    99+
    2022-11-13
    vue混入mixin vue混入 vue mixin
  • vue cli 局部混入mixin和全局混入mixin的过程
    目录局部混入mixin和全局混入mixin应用场景1、局部混入mixin2、全局混入mixinmixins的使用方法和注意点局部混入mixin和全局混入mixin 应用场景 两个组件...
    99+
    2024-04-02
  • 讨论vue中混入mixin的应用
    混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本...
    99+
    2024-04-02
  • vue中混入mixin的应用实例
    这篇文章主要介绍了vue中混入mixin的应用实例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用...
    99+
    2023-06-15
  • Vue中Mixin混入的示例分析
    这篇文章给大家分享的是有关Vue中Mixin混入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 什么是Mixin?想要使用一个事物或者工具,我们首要先了解它是什么,这样我们才好对症下药。其实Mixi...
    99+
    2023-06-29
  • Vue中mixins混入的介绍与使用详解
    目录一、来自官网的描述二、如何创建Mixins三、项目中如何使用混入四、与vuex的区别五、与公共组件的区别一、来自官网的描述 混入 (mixins): 是一种分发 Vue 组件中可...
    99+
    2022-12-23
    Vue mixins混入 Vue mixins使用
  • vue混入mixin流程与优缺点详解
    目录1、什么是mixin2、mixin与Vuex的区别3、mixin的使用3.1、局部混入3.2、全局混入4、mixin选项合并4.1、生命周期函数4.2、data中的数据冲突4.3...
    99+
    2024-04-02
  • Vue混入与插件的使用介绍
    目录1. 混入2. 插件1. 混入 概述: 混入(mixins)是一种分发Vue组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选...
    99+
    2024-04-02
  • vuejs中使用mixin局部混入/全局混入的方法详解
    目录前言需求什么是mixin全局混入几个重要的疑问选项合并生命周期函数data数据冲突方法名冲突mixin的优缺点1.变量名来源不明确2. 多个mixins的生命周期会合并融合到一起...
    99+
    2024-04-02
  • python 中Mixin混入类的使用方法详解
    目录前言Mixin 与继承的区别总结前言 最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子 class BaseSanic(    RouteMixin,  ...
    99+
    2024-04-02
  • Vue中的Tree-Shaking介绍及原理
    目录什么是Tree-ShakingTree-shaking的原理和支持可以被Tree-shaking不可以被Tree-shakingVue中的应用什么是Tree-Shaking Tr...
    99+
    2023-05-18
    Vue中的Tree-Shaking Vue Tree-Shaking
  • k8s入门集群组件介绍及概念理解
    目录master节点:集群的控制中枢node节点:工作节点,也叫worker节点kube-system命名空间:系统组件podk8s是谷歌以Borg为前身,基于谷歌15年生产环境经验...
    99+
    2024-04-02
  • Pinia介绍及工作原理解析
    目录什么是Pinia如何使用Pinia安装创建store在组件中使用store在模板中使用storePinia是如何工作的什么是Pinia Pinia是Vue 3的状态管理库,它提...
    99+
    2023-03-06
    Pinia工作原理 Pinia原理
  • openGauss的SCHEMA的原理及管理介绍
    目录 1.何为Schema摘要: 2.Schema语法✨ 2.1 创建SCHEMA✨ 2.2 修改SCHEMA✨ 2.3 删除SCHEMA 3.Schema赋权 1.何为Schema...
    99+
    2023-02-13
    openGauss SCHEMA管理 openGauss SCHEMA原理
  • Flutter混排瀑布流解决方案的详细介绍
    这篇文章将为大家详细讲解有关Flutter混排瀑布流解决方案的详细介绍,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景流式布局,这是一种当前无论是前端,还是Native都比较流行的一种页面布局。特别是对...
    99+
    2023-06-14
  • Vue指令的实现原理介绍
    这篇文章主要介绍“Vue指令的实现原理介绍”,在日常操作中,相信很多人在Vue指令的实现原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue指令的实现原理介绍”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • 深入了解SpringBoot中@ControllerAdvice的介绍及三种用法
    目录浅析@ControllerAdvice1.处理全局异常2.预设全局数据3.请求参数预处理浅析@ControllerAdvice 首先,ControllerAdvice本质上是一个...
    99+
    2023-02-06
    SpringBoot @ControllerAdvice用法 @ControllerAdvice用法 SpringBoot @ControllerAdvice
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作