Vue使用mixin分发组件的可复用功能

 更新时间:2019年09月01日 16:10:08   作者:hachimei  
这篇文章主要介绍了Vue使用mixin分发组件的可复用功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

vue创建高阶组件的实现不够react优雅,但那是vue和react的设计思想导致的。在react中一切都是函数,而在vue中,组件最终都是函数,但在开发时可以是JSON对象,而且每个vue组件要注意三个点:props、events和slots,就是这三个导致vue创建高阶组件时要传入相应的属性,较react要复杂。

vue官方推荐使用mixins来完成高阶组件的功能,如果对vue实现高阶组件有兴趣的话推荐看[vue实现高阶组件][1]

下面是vue官网使用mixins的例子:

// 定义一个混入对象
var myMixin = {
 created: function () {
  this.hello()
 },
 methods: {
  hello: function () {
   console.log('hello from mixin!')
  }
 }
}

// 定义一个使用混入对象的组件
var Component = Vue.extend({
 mixins: [myMixin]
})

var component = new Component() // => "hello from mixin!"

每个vue组件有mixins属性接收mixin数组,但由于mixin与组件,mixin与mixin之间存在属性命名冲突的问题,vue解决这个的方式是:

1 数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

2 值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。

3 Vue.extend()和new Vue()创建的组件,解决上述的命名冲突的方案是一样的。

总结

以上所述是小编给大家介绍的Vue使用mixin分发组件的可复用功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • vue路由跳转传递参数的方式总结

    vue路由跳转传递参数的方式总结

    在本篇文章和里小编给各位总结了关于vue路由跳转传递参数的三种方式以及相关代码,需要的朋友们可以学习下。
    2020-05-05
  • vue3中的Proxy一定要用Reflect的原因解析

    vue3中的Proxy一定要用Reflect的原因解析

    Reflect可以操作对象使用, proxy可以代理对象,但没有找到为啥有时一定要在Proxy代理方法中使用Reflect,这篇文章主要介绍了vue3中的Proxy一定要用Reflect的原因解析,需要的朋友可以参考下
    2023-04-04
  • element自定义表单验证上传身份证正反面的实现

    element自定义表单验证上传身份证正反面的实现

    表单验证在很多地方都可以用的到,本文主要介绍了element自定义表单验证上传身份证正反面的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue学习笔记之slot插槽基本用法实例分析

    vue学习笔记之slot插槽基本用法实例分析

    这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结合实例形式分析了vue slot插槽基本使用方法与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Vue 2.x教程之基础API

    Vue 2.x教程之基础API

    这篇文章主要介绍了Vue 2.x基础API的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • ElementUI多个子组件表单的校验管理实现

    ElementUI多个子组件表单的校验管理实现

    这篇文章主要介绍了ElementUI多个子组件表单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 解决vue的 v-for 循环中图片加载路径问题

    解决vue的 v-for 循环中图片加载路径问题

    今天小编就为大家分享一篇解决vue的 v-for 循环中图片加载路径问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue使用鼠标在Canvas上绘制矩形

    Vue使用鼠标在Canvas上绘制矩形

    这篇文章主要介绍了Vue使用鼠标在Canvas上绘制矩形,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • vue使用高德地图根据坐标定位点的实现代码

    vue使用高德地图根据坐标定位点的实现代码

    这篇文章主要介绍了vue使用高德地图根据坐标定位点的实现代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Vue Ref全家桶具体用法详解

    Vue Ref全家桶具体用法详解

    ref用来辅助我们获取DOM元素或组件的引用实例对象,每个vue的组件实例上,都包含一个refs对象,里面存储着对应的DOM元素或组件的引用,默认情况下,组件的refs指向一个空对象
    2023-03-03

最新评论