Vue3提供了代码段的写法,即在template里面不需要写跟元素,可以直接写代码段。但是在代码段里面触发自定义事件。会报下面的警告。
我们在一个组件里面,如果有好多地方都需要触发自定义事件。想要知道当前触发了哪一个自定义事件。需要把当前组件的代码浏览完毕。如果不把当前组件的代码浏览完毕,就不知道触发了几个自定义事件。
vue3提供了一个配置项。emits。可以把当前组件所有的自定义事件全部声明在emits里面,这样当别人阅读你的代码的时候只需要查看emits就可以知道当前组件触发了多少自定义事件。就跟props一样。在里面写了多少个数据就知道了当前组件接受多少数据,比较清晰。
比如下面的代码,代表当前组件触发了四个自定义事件
emits: ['on-cancel', 'on-delete', 'on-confirm', 'on-logistics'],
总结如下:
1. 在拥有根元素的组件中,触发自定义事件,有没有emits选项无所谓
2. 如果你的组件渲染的代码片段,vue3.0规范,需要在emits中申明你所触发的自定义事件
3. 提倡:你发了自定义事件,需要在emits选项申明下,代码可读性很高