• vue.mixin 混入理解和使用


    官方文档:https://cn.vuejs.org/v2/guide/mixins.html

    混入

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

     1、首先我们了解,vue mixin api分为组件级 和 全局级(这里组件级就只影响当前的组件,全局的影响所以组件)

     2、组件级 mixins 使用方法

    <template>
      <div>
        <p>{{message}}</p>
      </div>
    </template>
    
    <script>
    var mixin = {
      data: function () {
        return {
          message: 'hello',
        }
      },
      mounted(){
        console.log('混入对象的钩子被调用')
      },
      created() {
        
      },
      // ...
    }
    export default {
      name: "home",
      mounted(){
        console.log('组件钩子被调用')
      },
      mixins:[mixin],
    };
    </script>
    
    <style scoped>
    </style>

    注意: 当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。

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

    同名钩子函数将合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

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

    总结:组件对象优先级 > 混入对象 (重复的以组件优先,但是上面有提到同名钩子函数都会被调用

    打印结果如下:

    3、全局级 mixin 使用

    注意:混入也可以进行全局注册。使用时格外小心!一旦使用全局混入,它将影响每一个之后创建的 Vue 实例。使用恰当时,这可以用来为自定义选项注入处理逻辑。

    在 main.js 中加入全局混入

    // 全局混入(影响所以实例,小心使用)
    Vue.mixin({
      created: function () {
        console.log('混入created对象的钩子被调用');
      }
    })

    所以组件创建都会执行该混入

  • 相关阅读:
    洛谷P1880 石子合并
    洛谷P3265 装备购买
    bzoj1345 序列问题
    从群里抄来的某题
    poj2689 Prime Distance
    灯 & 树
    [HNOI2013]游走
    A
    B
    hdu 1247 Hat’s Words(字典树)
  • 原文地址:https://www.cnblogs.com/liangziaha/p/15500198.html
Copyright © 2020-2023  润新知