Mixin混入分发Vue组件可复用功能基础示例

 更新时间:2023年06月06日 10:45:56   作者:菜园前端  
这篇文章主要为大家介绍了Mixin混入分发Vue组件可复用功能基础示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Mixin 混入

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

怎么理解呢,就是每一个组件都会有一些选项 data、computed、methods ...对吧,假设我有 10 个组件,每一个组件内都有一个相同的 methods 方法,那我就将这个可复用的方法抽离到 mixin 文件中,然后在引入进来。这样我就不需要每个组件都编写重复的 methods 方法了,data、mounted 等等的选项也是如此。

基础案例

hello-world.vue

<template>
    <div class="home">
        {{ name }}
    </div>
</template>
<script>
import mixin from './mixin.js'
export default {
    mixins: [mixin],
    data() {
        return {}
    }
}
</script>

mixin.js

export default {
    data() {
        return {
            name: 'xiaoming'
        }
    }
}

预览效果

选项合并

因为混入会把它本身的选项和组件的选项一起合并,那么也就是说会发生一些冲突,例如混入中的文件含有 name 属性,而组件的选项 data 中也存在 name 属性,那页面渲染的时候会以哪个为准呢?接下来进行测试一下。

hello-world.vue

<template>
    <div class="home">
        {{ name }}
    </div>
</template>
<script>
import mixin from './mixin.js'
export default {
    mixins: [mixin],
    data() {
        return {
            name: 'libai'
        }
    }
}
</script>

mixin.js

export default {
    data() {
        return {
            name: 'xiaoming'
        }
    }
}

预览效果

可以看出来是以组件选项的为准,这里只举例了选项 data 的冲突,其他选项 methods、computed、mounted 也是如此,小伙伴们可以自行去测试一下。在开发的时候需要多留意一下冲突的情况。

相关文章

  • 4种方案带你探索Vue代码复用的前世今生

    4种方案带你探索Vue代码复用的前世今生

    我们所熟知的Vue.js也在如何提取公共代码复用方面也一直在探索优化,本文小编就来和各位聊聊Vue.js代码复用的前世今生,希望对大家学习Vue有一定的帮助
    2023-05-05
  • vue实现短信验证码登录功能(流程详解)

    vue实现短信验证码登录功能(流程详解)

    无论是移动端还是pc端登录或者注册界面都会见到手机验证码登录这个功能,输入手机号,得到验证码,这篇文章主要介绍了基于vue实现短信验证码登录功能,需要的朋友可以参考下
    2019-12-12
  • Nginx同一端口部署多个前后端分离的vue项目完整步骤

    Nginx同一端口部署多个前后端分离的vue项目完整步骤

    最近做项目结构优化,前端项目都是部署在nginx上,想实现同一个端口可以访问多个前端项目,所以就有了本文,这篇文章主要给大家介绍了关于Nginx同一端口部署多个前后端分离的vue项目的相关资料,需要的朋友可以参考下
    2023-10-10
  • Vite中使用Ant Design Vue3.x框架教程示例

    Vite中使用Ant Design Vue3.x框架教程示例

    这篇文章主要为大家介绍了Vite中使用Ant Design Vue3.x框架教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • vuex根据不同的用户权限展示不同的路由列表功能

    vuex根据不同的用户权限展示不同的路由列表功能

    最近接到一个新的需求,要求将系统的用户进行分类,用户登陆后根据不同的用户权限展示不同的功能列表。这篇文章主要介绍了vuex根据不同的用户权限展示不同的路由列表,需要的朋友可以参考下
    2019-09-09
  • 基于element-ui封装表单金额输入框的方法示例

    基于element-ui封装表单金额输入框的方法示例

    这篇文章主要介绍了基于element-ui封装表单金额输入框的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • element-ui Upload上传组件动态配置action方式

    element-ui Upload上传组件动态配置action方式

    这篇文章主要介绍了element-ui Upload上传组件动态配置action方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • vue forEach循环数组拿到自己想要的数据方法

    vue forEach循环数组拿到自己想要的数据方法

    今天小编就为大家分享一篇vue forEach循环数组拿到自己想要的数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue+Element-ui弹窗 this.$alert is not a function问题

    Vue+Element-ui弹窗 this.$alert is not a function问题

    这篇文章主要介绍了Vue+Element-ui弹窗 this.$alert is not a function问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue iview的菜单组件Mune 点击不高亮的解决方案

    vue iview的菜单组件Mune 点击不高亮的解决方案

    今天小编就为大家分享一篇vue iview的菜单组件Mune 点击不高亮的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论