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)

上一篇下一篇

猜你喜欢

热点阅读