Vue中的混入(vue mixins)

作者: BrightenSun | 来源:发表于2018-06-01 07:42 被阅读16次
使用场景:

例如我们在Vue单页面开发的时候当多个组件中都需要下拉刷新,或者使用的都是一个方法的时候,我们就可以使用vue mixins进行封装调用,以及继承,具体看代码。

选项合并
            var mixin = {
                data: function () {
                return {
                  message: 'hello'
                }
              },
              created:function(){
                console.log('我是mixins中的created')
              },
              methods:{
                show:function(num){
                    console.log(num)  //mixins种的函数可以接收组件种的传参。
                },
                foo: function () {
                  console.log('foo')
                },
                conflicting: function () {
                  console.log('from mixin')
                }
              }
            }

            var vm = new Vue({
              mixins: [mixin],
              data: function () {
                return {
                  title: 'def',
                  message: 'goodbye'
                }
              },
              created: function () {
                console.log('我是Vue中的created')
                console.log(this.$data)
                this.show(50);  //可通过函数传参,把组件中需要的参数传给mixins进行使用。
              },
              methods:{
                bar: function () {
                  console.log('bar')
                },
                conflicting: function () {
                  console.log('from self')
                }
              }
            })
            
            vm.foo() // => "foo"
            vm.bar() // => "bar"
            vm.conflicting() // => "from self"

注意以下三点:
1、当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。比如,数据对象在内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先。
2、同名钩子函数将混合为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。
3、值为对象的选项,例如 methods, components 和 directives,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对。

全局混入

也可以全局注册混入对象。注意使用! 一旦使用全局混入对象,将会影响到 所有 之后创建的 Vue 实例。使用恰当时,可以为自定义对象注入处理逻辑。

//为自定义的选项 'myOption' 注入一个处理器。
Vue.mixin({
  created: function () {
    var myOption = this.$options.myOption
    if (myOption) {
      console.log(myOption)
    }
  }
})

new Vue({
  myOption: 'hello!'
})
// => "hello!"

相关文章

  • mixins

    vue混入(mixins) 简介 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混...

  • Vue 混入(mixins和Vue.mixin)

    1.mixins和Vue.mixin mixins 混入 (mixins) 是一种分发 Vue 组件中可复用功能的...

  • Vue混入

    Vue 混入 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组...

  • Vue 之 混入(mixins)

    Vue 之 混入(mixins) 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功...

  • vue中mixins的使用方法和注意点

    mixins基础概况 混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以...

  • TypeScript19(Mixins混入)

    TypeScript 混入 Mixins 其实vue也有mixins这个东西 你可以把他看作为合并 1.对象混入 ...

  • Vue混入mixins

    Vue官网上介绍: 混入(mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任...

  • Vue中的混入(vue mixins)

    使用场景: 例如我们在Vue单页面开发的时候当多个组件中都需要下拉刷新,或者使用的都是一个方法的时候,我们就可以使...

  • Vue 和 React 的状态逻辑复用方案

    Vue 五种逻辑复用方案 目前Vue实现代码逻辑复用主要5个途径: Vuex, Mixins(混入, Vue推荐...

  • (转)Vue中mixin的理解

    mixins基础概况 vue中的解释是这样的,如果觉得语言枯燥的可以自行跳过嘿~ 混入 (mixins): 是一种...

网友评论

本文标题:Vue中的混入(vue mixins)

本文链接:https://www.haomeiwen.com/subject/juhhsftx.html