Vue Vite 项目启动后,控制台报错:
[@vue/compiler-sfc] `defineProps` is a compiler macro and no longer needs to be imported.
[@vue/compiler-sfc] `defineEmits` is a compiler macro and no longer needs to be imported.
警告信息本身意思是:在 <script setup> 中直接使用defineProps\defineEmits,不需要再import。
- defineProps、defineEmits 是 Vue 3 的一个特性,用于为组件定义 props。在 Vue 3 中,defineProps、defineEmits 已经成为了编译器宏,不再需要显式地导入。
- 总之,defineProps、defineEmits 是 Vue 3 的一个特性,用于为组件定义 props。在 Vue 3 中,defineProps、defineEmits 已经成为了编译器宏,不再需要显式地导入。在使用 defineProps、defineEmits 定义 props、emits 时,它们会自动进行类型检查和默认值设置,使得组件定义更加简洁和易于维护。
ps:
Vue 3.2 版本后不再需要手动导入 defineProps 和 defineEmits,直接使用即可,官方文档已经更新
eg:
<script setup>
import { defineProps,defineEmits } from "vue";
.....
</script>
修改:去掉 import 语句即可
<script setup>
const props = defineProps({
name: String
})
const emit = defineEmits(['del'])
// setup code
</script>