OnEvent декоратор компонента класса vue

У меня была эта идея для декоратора свойств, а именно, что-то вроде:

@OnEvent('asd')
test(value: string): void {
  this.test = value;
}

который будет "переводить" на

this.$root.$on('asd', (value) => {
this.test = value
}

Таким образом, этот декоратор будет регистрировать onChange для целевой функции с указанным именем события. Тем не менее, я не имею ни малейшего представления сделать что-то подобное.

Я видел декораторы @On(), но этот, кажется, не работает для меня вообще, и я думаю, что он также поддерживает только до Vue-1.

Я также попытался использовать @Emit, но безрезультатно, для справки, вот @Emit из vue-property-decorators:

export function Emit(event) {
    return function (target, key, descriptor) {
        key = hyphenate(key);
        var original = descriptor.value;
        descriptor.value = function emitter() {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            if (original.apply(this, args) !== false)
                this.$emit.apply(this, [event || key].concat(args));
        };
    };
}

У меня есть небольшой опыт работы с декораторами, но я не понимаю, как вы можете использовать это.$ On в декораторе, он просто выдает мне ошибки, если кто-нибудь может сообщить мне, если это вообще возможно, спасибо!

0 ответов

Другие вопросы по тегам