命名空间Mixins Vuejs

时间:2018-01-21 19:43:20

标签: javascript vue.js

我希望能够创建命名空间的mixin。

让我们以此通知混合为例:

(function()  {
    'use strict';

    window.mixins = window.mixins || {}

    window.mixins.notification = {
        methods: {
            show: function(type, message, duration) {
                duration = duration || 5000;

                new Noty({
                    type: type,
                    text: message,
                    timeout: duration,
                    theme: 'custom'
                }).show();
            }
        }
    }
}());

我可以在我的组件中导入它并使用它:

(function() {
    'use strict';

    Vue.component('basic-component', function() {
        mixins: [window.mixins.notification],

        created: function() {
            this.show();
        }
    })
})

但我不喜欢它,因为你不知道它来自哪里。

是否可以将mixin命名为能够执行某些操作:

(function() {
    'use strict';

    Vue.component('basic-component', function() {
        mixins: [window.mixins.notification],

        created: function() {
            this.mixins.notification.show();
        }
    })
})

编辑:似乎不可能,我打开了一个问题,随时发表评论并分享您对此事的看法:https://github.com/vuejs/vue/issues/7501

1 个答案:

答案 0 :(得分:1)

Vue mixins无法像这样工作。你必须做一些非常讨厌的事情。