(十三)Vue3.x中的emits选项

2020-10-23  本文已影响0人  Mr_莫言之
本章节将介绍到的是用于记录当前实例中的emit事件的选项。

1、概述:当前组件的通过emit的事件列表
2、类型:Array|Object
3、作用:Vue3.0中使用emit发起事件时会要求当前组件记录emit事件(没有则控制台会抛出警告)。
4、用途:用于记录当前组件emit的事件,当为对象时,则可以验证传入的值是否有效。

setup(prop, { emit }) {
    const changeOne = val => {
        emit('on-changeOne', val);
    };
    const changeTwo  = val => {
        emit('on-changeTwo', val);
    };
}

用法一:数组用法

export default {
    emits:['on-changeOne', 'on-changeTwo'],
    setup() {...}
}

用法二:对象用法,当emits为对象时,可以验证事件中的参数是否有效

export default {
    emits:{
        click: null,
        'on-changeOne': payload => {
            if(...) {
                return true; // 验证通过
            }
            console.warn('验证失败!')
            return false; // 验证失败,控制台打印vue警告及“验证失败!”警告
        },
        'on-changeTwo': payload => {...}
    },
    setup() {...}
}
// 当验证函数中没有返回值return时,默认返回true

注意:emits无论是数组或者对象用法最终都会将事件给传递出去,数组或对象的使用只是为了记录实例中的emit事件,或者是验证事件中的参数。

下一章:(十四)Vue3.x核心之getCurrentInstance
上一章:(十二)Vue3.x中重写的v-model

ps:明明知道闯一闯可能会拼出一片天地,那为什么还是有大部分的人选择了平凡?

上一篇下一篇

猜你喜欢

热点阅读