Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 名称空间混合Vuejs_Javascript_Vue.js - Fatal编程技术网

Javascript 名称空间混合Vuejs

Javascript 名称空间混合Vuejs,javascript,vue.js,Javascript,Vue.js,我希望能够创建一个名称空间的mixin 让我们以此通知mixin为例: (function() { 'use strict'; window.mixins = window.mixins || {} window.mixins.notification = { methods: { show: function(type, message, duration) { duration = dura

我希望能够创建一个名称空间的mixin

让我们以此通知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();
        }
    })
})

编辑:这似乎还不可能,我打开了一个问题,请随意评论并分享您对这件事的想法:

Vue mixins没有办法这样工作。你必须做一些非常粗糙的事情。

然后这真的很糟糕,我不知道VueJS如何“干燥”和可维护,这是一个非常基本的功能。。。