今年开始抛弃vue2了,正式使用vue3。虽然知道有坑,但是没想到坑是这样的。
随时补充吧
dev不报错,build过不去的事
ctx.$emit
和defineEmits
的故事
现象:在<script setup></script>
中使用ctx.$emit
后,dev环境下运行正常。build后运行报错。
解决办法:改为使用defineEmits
初始化事件
// 初始事件
const emits = defineEmits(['eventname1','name2']);
// 触发
emits('eventname1',params);
<script setup></script>
中的globalProperties
调用
现象:在<script setup></script>
中使用ctx.自定义全局
后,dev环境下运行正常。build后运行报错。
解决办法:不在ctx
下调用,而是
const {
appContext: {config: {globalProperties: global}},
} = getCurrentInstance();
// 引用
global.xxx
- 关于dom绑定变量时,变量和相关函数的定义
现象:我犯的错误是这样的,在export default{}
中data
定义的变量A,methods
中定义了修改变量的函数F,然后在setup
中调用F来修改变量A,dev环境下都正常,build的时候报错,找不到A变量
解决办法:在涉及绑定变量读写逻辑时,两个选择,定义和逻辑都在data
+methods
里写,或者在setup
中定义变量和函数,尽量不要混用