vue3.2 事件暴露
2022-07-21 本文已影响0人
ThisWu
以往的vue想在组件内部暴露事件其实很简单直观的直接使用$emit就好。如下:
this.$emit('save', '这是保存事件暴露')
vue3.2 就不行。但是 setup 声明语法内置可以识别defineEmits api
// 需要先声明,在使用,然后才能正常接收。还是以save方法为例(一定要注意使用场景):
const emit = defineEmits(['save'])
emit('save', '这是保存事件暴露')
// 这种setup 语法是可以直接使用,不需要单独声明
<script setup>
const emits = defineEmits(['increase']);
const handelClick = () => {
emits('increase');
};
</script>
// 非setup语法就需要单独引入声明才能使用
improt { defineEmits } from 'vue'
<script>
const emits = defineEmits(['increase']);
const handelClick = () => {
emits('increase');
};
</script>
如想看更详细代码或想学习vite和vue3.2+请移步: tw-vue-vite: 一个基于vue3.2(全家桶)+ vite + elementplus的系统集成架构 (gitee.com)