我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue3的mixin混入使用方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue3的mixin混入使用方法是什么

本篇内容主要讲解“vue3的mixin混入使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3的mixin混入使用方法是什么”吧!

    vue 2 中采用选项式API 如: datamethodswatchcomputed以及生命周期钩子函数等等。

    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'); }}

    运行结果:

    vue3的mixin混入使用方法是什么

    我们发现生命周期函数会合并执行,优先执行 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混入使用方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    vue3的mixin混入使用方法是什么

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

    下载Word文档

    猜你喜欢

    vue3的mixin混入使用方法是什么

    本篇内容主要讲解“vue3的mixin混入使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3的mixin混入使用方法是什么”吧!vue 2 中采用选项式API 如: data、
    2023-06-21

    vue3+ts使用Echarts的方法是什么

    本篇内容主要讲解“vue3+ts使用Echarts的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3+ts使用Echarts的方法是什么”吧!安装npm install echa
    2023-07-05

    mybatisplus与JPA混合使用的方法是什么

    本文小编为大家详细介绍“mybatisplus与JPA混合使用的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatisplus与JPA混合使用的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
    2023-07-05

    vue3项目中keepAlive的使用方法是什么

    vue3项目中keepAlive的使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。keepalive是Vue的内置组件,作用是将组件缓存在内存当中,
    2023-06-22

    Vue3父子通讯方式及Vue3插槽的使用方法是什么

    这篇文章主要介绍了Vue3父子通讯方式及Vue3插槽的使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3父子通讯方式及Vue3插槽的使用方法是什么文章都会有所收获,下面我们一起来看看吧。Vue
    2023-07-05

    vue映射的方法与怎么混入使用

    这篇文章主要介绍了vue映射的方法与怎么混入使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue映射的方法与怎么混入使用文章都会有所收获,下面我们一起来看看吧。vue映射方法与混入使用v-select中的内
    2023-06-30

    Vue两个通信方式与动画过度及混入使用的方法是什么

    这篇文章主要介绍了Vue两个通信方式与动画过度及混入使用的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue两个通信方式与动画过度及混入使用的方法是什么文章都会有所收获,下面我们一起来看看吧。一、全
    2023-07-05

    Flutter混合开发的方法是什么

    今天小编给大家分享一下Flutter混合开发的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。为什么要混合方案具有一
    2023-06-04

    MQTT.js入门使用的方法是什么

    这篇文章主要介绍“MQTT.js入门使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MQTT.js入门使用的方法是什么”文章能帮助大家解决问题。简介MQTT.js 是一个开源的 MQT
    2023-07-06

    vue3和ts封装axios及使用mock.js的方法是什么

    这篇文章主要讲解了“vue3和ts封装axios及使用mock.js的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3和ts封装axios及使用mock.js的方法是什么”吧
    2023-07-05

    Vue3中watch的用法是什么

    本篇内容主要讲解“Vue3中watch的用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中watch的用法是什么”吧!目录前言?一、API介绍二、监听多个数据源三、侦听数组四、侦
    2023-06-20

    vue3自定义插件的作用场景及使用方法是什么

    本篇内容主要讲解“vue3自定义插件的作用场景及使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3自定义插件的作用场景及使用方法是什么”吧!插件的作用场景在vue2的插件那篇文
    2023-07-05

    Vue3 echarts组件化及使用hook进行resize的方法是什么

    echarts组件化及使用hook进行resizehook本质是一个函数,把setup函数中使用的CompositionAPI进行了封装组件化echarts实例import*asechartsfrom"echarts";importuseResizefrom"@/hooks/useResize";//hook代码见下方const{proxy}=getCurrentInstance();//获取实例中的proxyletechart;letechartInst
    2023-05-23

    vue3自定义指令的方法是什么

    这篇文章主要介绍“vue3自定义指令的方法是什么”,在日常操作中,相信很多人在vue3自定义指令的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue3自定义指令的方法是什么”的疑惑有所帮助!接下来
    2023-07-04

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录