Lala Code

Lala 的前端大補帖,歡迎一起鑽研前端技術😊

0%

Solved-defineProps is a compiler macro and no longer needs to be imported.

defineProps error

1
2
3
4
5
6
7
8
<script setup>
import { defineProps, defineEmits } from 'vue';
const props = defineProps({
foo: String
})

const emit = defineEmits(['change', 'delete'])
</script>

在 Vue3 編譯時出現這個警告
[@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.



解譯bug

⚠️ @vue/compiler-sfc
Vue 單文件組件(SFC) 編譯警告

⚠️defineProps is a compiler macro and no longer needs to be imported.
defineProps 是一個編譯器巨集,不再需要導入。

⚠️defineEmits is a compiler macro and no longer needs to be imported.
defineEmits 是一個編譯器巨集,不再需要導入。



錯誤原因

defineProps和 defineEmits 都是只在 <script setup> 中才能使用的編譯器巨集。
他們不需要導入且會隨著 <script setup> 處理過程一同被編譯掉



如何解決

將 import 的 definePropsdefineEmits 移除即可

1
2
3
4
5
6
7
8
<script setup>
// import { defineProps, defineEmits } from 'vue'; // 刪除這行
const props = defineProps({
foo: String
})

const emit = defineEmits(['change', 'delete'])
</script>

官方文件


如果這篇文章對你有幫助,請幫小編按個讚👍~你的鼓勵是我分享的動力😊



🚀實體工作坊分享

玩轉 Web頁面的前端技術(HTML/CSS/JS) 一日體驗課

最近時賦學苑開了實體體驗課,即使你對程式碼沒有概念也能上手!Lala 會帶你一起做出一個個人品牌形象網站,帶你快速了解前端的開發流程,快跟我們一起玩轉 Web 吧!



🚀線上課程分享

線上課程可以加速學習的時間,省去了不少看文件的時間XD,以下是我推薦的一些課程
想學習更多關於前後端的線上課程,可以參考看看。

Hahow

Hahow 有各式各樣類型的課程,而且是無限次數觀看,對學生或上班族而言,不用擔心被時間綁住



六角學院

如果你是初學者,非常推薦六角學院哦!
剛開始轉職也是上了六角的課,非常的淺顯易懂,最重要的是,隨時還有線上的助教幫你解決問題!


Udemy

Udemy 裡的課程非常的多,品質普遍不錯,且價格都滿實惠的,CP值很高!
也是很多工程師推薦的線上課程網站。
❤️