返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vuemixins混入使用解析
  • 406
分享到

Vuemixins混入使用解析

VueMixins混入VueMixins的使用 2023-02-25 11:02:19 406人浏览 安东尼
摘要

目录前言一、什么是Mixins二、什么时候使用Mixins三、如何创建Mixins四、如何使用Mixins五、Mixins的特点六、Mixins合并冲突七、与Vuex的区别八、与公共

前言

当我们的项目越来越大,我们会发现组件之间可能存在很多相似的功能,你在一遍又一遍的复制粘贴相同的代码段(data,method,watch、mounted等),如果我们在每个组件中去重复定义这些属性和方法会使得项目出现代码冗余并提高了维护难度,针对这种情况官方提供了Mixins特性

一、什么是Mixins

mixins(混入),官方的描述是一种分发 Vue 组件中可复用功能的非常灵活的方式,mixins是一个js对象,它可以包含我们组件中script项中的任意功能选项,如data、components、methods 、created、computed等等。我们只要将共用的功能以对象的方式传入 mixins选项中,当组件使用 mixins对象时所有mixins对象的选项都将被混入该组件本身的选项中来,这样就可以提高代码的重用性,使你的代码保持干净和易于维护。

二、什么时候使用Mixins

当我们存在多个组件中的数据或者功能很相近时,我们就可以利用mixins将公共部分提取出来,通过 mixins封装的函数,组件调用他们是不会改变函数作用域外部的。

三、如何创建Mixins

在src目录下创建一个mixins文件夹,文件夹下新建一个myMixins.js文件。前面我们说了mixins是一个js对象,所以应该以对象的形式来定义myMixins,在对象中我们可以和vue组件一样来定义我们的data、components、methods 、created、computed等属性,并通过export导出该对象

四、如何使用Mixins

在需要调用的组件中引入myMixins.js文件,然后在export default 中引入你需要的对象即可

五、Mixins的特点

【5.1】方法和参数在各组件中不共享,虽然组件调用了mixins并将其属性合并到自身组件中来了,但是其属性只会被当前组件所识别并不会被共享,也就是其他组件无法从当前组件中获取到mixins中的数据和方法。

①首先我们在混合对象myMixins.js中定义一个age字段和getAge方法

export const myMixins = {
  components:{},
  data() {
    return {
      age: 18,
    }
  },
  mounted() {
    this.getAge()
  },
  methods: {
    getAge() {
      console.log(this.age)
    }
  }
}

② 组件1中对num进行+1操作

import { myMixins } from "@/mixins/myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {}
  },
  created() {
    this.age++
  },
}

③组件2不进行操作

export default {
  mixins: [myMixins],
  data() {
    return {}
  },
}

④我们分别切换到两个页面,查看控制台输出。会发现组件1改变了age里面的值,组件2中age值还是混合对象的初始值,并没有随着组件1的增加而改变

【5.2】引入mixins后组件会对其进行合并,将mixins中的数据和方法拓展到当前组件中来,在合并的过程中会出现冲突,接下来我们详细了解Mixins合并冲突

六、Mixins合并冲突

【6.1】值为对象(components、methods 、computed、data)的选项,混入组件时选项会被合并,键冲突时优先组件,组件中的键会覆盖混入对象的

①我们在混入对象增加age属性、getAge1方法和getAge2方法

// myMixins.js
export const myMixins = {
  components:{},
  data() {
    return {
      age: 18,
    }
  },
  methods: {
    getAge1() {
      console.log("age1 from mixins =", this.age )
    },
    getAge2() {
      console.log("age2 from mixins =", this.age )
    },
  }
}

②我们在引入了myMixins文件的组件中,增加age属性、getAge1方法和getAge3方法

// template.vue
import { myMixins } from "@/mixins/myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {
      age: 20,
    }
  },
  mounted() {
    this.getAge1();
    this.getAge2();
    this.getAge3();
  },
  methods: {
    getAge1() {
      console.log('age1 from template =', this.age)
    },
    getAge3() {
      console.log('age3 from template =', this.age)
    },
  }
}

③我们会发现,组件中的age覆盖了混合对象的age,组件的getAge1方法覆盖了混合对象的getAge1方法

【6.2】值为函数(created、mounted)的选项,混入组件时选项会被合并调用,混合对象里的钩子函数在组件里的钩子函数之前调用

// myMixins.js
export const myMixins = {
  components:{},
  data() {
    return {}
  },
  created() {
    console.log('xxx from mixins')
  }
}
import { myMixins } from "@/mixins/myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {}
  },
  created() {
    console.log('xxx from template')
  }
}

七、与vuex的区别

vuex:用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之修改。

Mixins:可以定义共用的变量,在每个组件中使用,引入组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响。

八、与公共组件的区别

组件:在父组件中引入组件,相当于在父组件中给出一片独立的空间供子组件使用,然后根据props来传值,但本质上两者是相对独立的。

Mixins:则是在引入组件之后与组件中的对象和方法进行合并,相当于扩展了父组件的对象与方法,可以理解为形成了一个新的组件。

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

--结束END--

本文标题: Vuemixins混入使用解析

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

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

猜你喜欢
  • Vuemixins混入使用解析
    目录前言一、什么是Mixins二、什么时候使用Mixins三、如何创建Mixins四、如何使用Mixins五、Mixins的特点六、Mixins合并冲突七、与vuex的区别八、与公共...
    99+
    2023-02-25
    Vue Mixins混入 Vue Mixins的使用
  • VueMixins混入介绍与使用
    目录混入(Mixins)介绍Mixins使用1,建立js文件2,mixins.js代码3,页面局部混入全局混入混入(Mixins)介绍 混入 (mixin) 提供了一种非常灵活的方式...
    99+
    2023-02-02
    Vue Mixins混入 Vue Mixins
  • vuejs中使用mixin局部混入/全局混入的方法详解
    目录前言需求什么是mixin全局混入几个重要的疑问选项合并生命周期函数data数据冲突方法名冲突mixin的优缺点1.变量名来源不明确2. 多个mixins的生命周期会合并融合到一起...
    99+
    2024-04-02
  • vuejs中怎么使用mixin局部混入与全局混入
    这篇文章主要介绍“vuejs中怎么使用mixin局部混入与全局混入”,在日常操作中,相信很多人在vuejs中怎么使用mixin局部混入与全局混入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vuejs中怎么使...
    99+
    2023-06-30
  • Vue mixins混入如何使用
    这篇文章主要介绍了Vue mixins混入如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue mixins混入如何使用文章都会有所收获,下面我们一起来看看吧。一、什么是Mixins...
    99+
    2023-07-05
  • vue混入mixin使用特点
    目录什么是混入创建Mixins使用Mixins在组件(Home.vue)中使用mounted生命周期钩子选项合并可复用性全局混入注意什么是混入 混入 (mixin) : 是一种分发V...
    99+
    2022-12-22
    vue混入mixin vue混入mixin原理
  • vue3  mixin 混入使用方法
    目录一、mixin 如何使用 ?二、mixin 使用时注意点2.1、使用 mixin 对象时,组件内部和 mixin 包含相同选项,如何处理呢?2.2、使用的 mixin 对象选项 ...
    99+
    2024-04-02
  • Vue混入使用和选项合并详解
    目录1、在组件中使用2、选项合并总结1、在组件中使用 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用...
    99+
    2024-04-02
  • python 中Mixin混入类的使用方法详解
    目录前言Mixin 与继承的区别总结前言 最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子 class BaseSanic(    RouteMixin,  ...
    99+
    2024-04-02
  • Vue中mixins混入的介绍与使用详解
    目录一、来自官网的描述二、如何创建Mixins三、项目中如何使用混入四、与vuex的区别五、与公共组件的区别一、来自官网的描述 混入 (mixins): 是一种分发 Vue 组件中可...
    99+
    2022-12-23
    Vue mixins混入 Vue mixins使用
  • vue中的mixins混入使用方法
    目录mixinsmixins理解使用方法全局混入局部混入mixins的使用方法的复用方法的覆盖合并生命周期mixins 混合 (mixins) 是一种分发 Vue 组件中可复用功能的...
    99+
    2024-04-02
  • vue中的mixins怎么混入使用
    这篇文章主要介绍了vue中的mixins怎么混入使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中的mixins怎么混入使用文章都会有所收获,下面我们一起来看看吧。作用用简单的话去概括就是一种分发vue...
    99+
    2023-06-30
  • python中Mixin混入类如何使用
    这篇文章主要讲解了“python中Mixin混入类如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中Mixin混入类如何使用”吧!前言最近在看sanic的源码,发现有很多M...
    99+
    2023-07-02
  • vue中混入mixins的使用方法
    目录前言使用方法总结前言 Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的。同时, 这个mixins 也分为局部混入和全局混入 vue中的解释是这样的,如...
    99+
    2024-04-02
  • Vue之mixin混入详解
    目录局部混入全局混入总结  局部混入 <template> <div> <h2 @click="showName">学生姓名:{{...
    99+
    2024-04-02
  • Vue 详解mixins混入用法大全
    目录前言 一、什么是Mixins? 二、什么时候使用Mixins? 三、如何创建Mixins? 四、如何使用Mixins? 五、Mixins的特点 六、Mixins合并冲突 七、与v...
    99+
    2024-04-02
  • Vue中Mixin混入的示例分析
    这篇文章给大家分享的是有关Vue中Mixin混入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 什么是Mixin?想要使用一个事物或者工具,我们首要先了解它是什么,这样我们才好对症下药。其实Mixi...
    99+
    2023-06-29
  • Vue混入与插件的使用介绍
    目录1. 混入2. 插件1. 混入 概述: 混入(mixins)是一种分发Vue组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选...
    99+
    2024-04-02
  • Vue.js混入mixin怎么用
    这篇文章主要介绍了Vue.js混入mixin怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求背景:在一个后台的管理系统中,不同的用户...
    99+
    2024-04-02
  • vue3的mixin混入使用方法是什么
    本篇内容主要讲解“vue3的mixin混入使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3的mixin混入使用方法是什么”吧!vue 2 中采用选项式API 如: ...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作