iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3  mixin 混入使用方法
  • 311
分享到

vue3  mixin 混入使用方法

2024-04-02 19:04:59 311人浏览 薄情痞子
摘要

目录一、mixin 如何使用 ?二、mixin 使用时注意点2.1、使用 mixin 对象时,组件内部和 mixin 包含相同选项,如何处理呢?2.2、使用的 mixin 对象选项

Vue 2 中采用选项式api 如: data、methods、watch、computed以及生命周期钩子函数等等。

mixin 混入,提供了一种非常灵活的方式,来分发 vue 组件中的可复用功能,一个mixin 对象可以包含任意组件选项,当组件使用 mixin 对象时,所有的 mixin 对象的选项将被混入组件本身的选项。

一、mixin 如何使用 ?

通俗地讲,mixin 对象把一些组件公用的选项,如data内数据,方法、计算属性、生命周期钩子函数,单独提取出来,然后在组件内引入,就可以与组件本身的选项进行合并。

示例1:


<script>

const myMixin = {

 data(){

  return {

   num:520

  }

 },

 mounted(){

  console.log('mixin mounted');

 }

}

export default {

  mixins:[myMixin],

}

</script>

就相当于:


<script>

export default {

 data(){

  return {

   num:520

  }

 },

 mounted(){

  console.log('mixin mounted');

 }

}

</script>

这样做的好处就是可以把多个组件公共选项抽取到一个 mixin 对象内,需要的时候直接引入就可以了。

二、mixin 使用时注意点

mixin 包含的选项,同时组件内也可以包含这些选项,如果 mixin 中包含的选项中,有部分属性相同怎么办?如 mixin 和组件内都存在一个同名方法时,如何处理?或者都包含生命周期钩子函数时,它们的执行顺序谁前谁后呢?接下来我们就看看,使用 mixin 时应该注意的点。

2.1、使用 mixin 对象时,组件内部和 mixin 包含相同选项,如何处理呢?

示例2mixin 对象和实例都包含data选项,内部有两个不同的变量


<template>

 <div>

  {{qdr}}  -   {{name}} 

 </div>

</template>

<script>

const myMixin = {

 data(){

  return {

   name:'热爱前端的小姐姐'

  }

 }

}

export default {

 mixins:[myMixin],

 data(){

  return {

   qdr:"前端人"

  }

 }

}

</script>

运行后,我们发现两个变量都能使用,mixin 对象中的 data 与实例中的 data 选项进行合并了。对于 methods computed 也是一样的。

如果我们把上个实例中的两个变量,修改成同名时,会怎样呢?

2.2、使用的 mixin 对象选项 和实例中的选项拥有相同的属性该如何处理?

示例3data 内拥有相同的变量名 name


<template>

 <div>

  {{name}} 

 </div>

</template>

<script>

const myMixin = {

 data(){

  return {

   name:'热爱前端的小姐姐'

  }

 }

}

export default {

 mixins:[myMixin],

 data(){

  return {

   name:"前端人"

  }

 }

}

</script>

运行结果,name 值为 “前端人”。

属性值相同时,会选择就近原则,优先继承实例内的值,所以 mixin 对象的属性会被实例中的属性给覆盖掉。

2.3、mixin 对象也可以添加生命周期钩子函数

mixin 和 实例中 的那个优先执行呢?

示例4mixin 加入生命周期钩子函数,以 mounted 为例


const myMixin = {

 mounted(){

  console.log('mixin mounted');

 }

}

export default {

 mixins:[myMixin],

 mounted(){

  console.log('mounted');

 }

}

运行结果:

我们发现生命周期函数会合并执行,优先执行 mixin 中的, 然后再执行实例中的。

三、mixin 自定义属性

$options 用于当前组件实例 的初始化选项,需要在选项中包含自定义 property 时会有用处。

简单讲,$options 用于在实例中调用 mixin 自定义属性。

示例5:添加自定义属性


const myMixin = {

  custom:'自定义属性'

 }

在实例中使用:



mounted(){

 console.log(this.$options.custom);

}

如果在实例中也包含一个同名自定义属性时,优先级会作何处理呢?如果我们想控制优先级又该如何处理呢?

四、合并策略

optionMergeStrategies 选项合并策略,使用 mixin 自定义属性和实例中的属性冲突时,使用optionMergeStrategies 定义合并规则的,也就是优先使用谁的问题。

使用规则:


app.config.optionMergeStrategies.propertyName=(mixinVal,appVal)=>{

  return appVal || mixinVal  // 确定优先返回哪个属性值

}

根据上述示例5,给实例中加 custom 属性,运行查看结果。

示例6:验证 mixin 和 实例 属性优先级


<script>

const myMixin = {

  custom:'mixin custom',

}

export default {

  custom:'app custom',

  mixins:[myMixin],

  mounted(){

    console.log(this.$options.custom); // 打印结果:app custom

  }

}

</script>

发现,mixin 对象中的属性值被实例中属性值覆盖掉了。我们可以借用上述的 optionMergeStrategies 属性,修改 custom 的合并规则。

在 main.js 文件内引入:


app.config.optionMergeStrategies.custom=(mixinVal,appVal)=>{

 return mixinVal ||  appVal

}

再次运行之后,我们发现打印结果变成 mixin 中的属性值了:


console.log(this.$options.custom); // 打印结果:mixin custom

五、全局配置 mixin

如果项目中有多个组件复用某些选项时,我们可以通过全局使用 mixin 对象。一个实例也可以引入多个 mixin 对象。

语法如下:


app.mixin([ {}, {}, {} ])

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

--结束END--

本文标题: vue3  mixin 混入使用方法

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

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

  • 微信公众号

  • 商务合作