vue3 项目中报错:
Uncaught (in promise) TypeError: fn is not a function at callWithErrorHandling
找了很多地方,都没发现错误,最后发现是setup那里写错了,在vue3中,没有data和methods以及computed,这些被setup代替,但是写法有一些不同
vue2中:data定义变量
name : 'lilei' //(这里写的是 冒号 : )
vue3中:定义变量
const name = ref('lilei') //(这里写的是 等于号 = ,
//并且在原来定义的基础上,外边加一层ref(),这样定义的变量就是响应式的了,
//当然了,这个ref不是直接用的,要在外边导入 import {ref} from 'vue')
//注意::取值的时候要写成 变量名.value,不然可能会报错或者取不出来值
vue2中:function中如果要用定义的变量,需要在变量前边加 “this.”
vue3中:function中如果要用定义的变量,不需要在变量前边加 “this.”,直接写变量名即可
注意::函数名 的名字前边要写“ function ”,不能直接写 函数名
vue2中:数据在 data 中,函数在 methods 和 computed 中
vue3中:数据 和 函数 统一写在了setup中
setup后边是小括号(),不是冒号:
我上边的报错就是因为把"(小括号)" 写成了 "冒号:"
***而且setup 最后要把定义的变量,以及function都要return出去才能用,不然会报错****
另外,.sync在 vue3 中不存在了,换成了v-model,例如:
在用 elementUI 的分页的时候
vue2中: :current-page.sync="currentPage"
vue3中: v-model:current-page="currentPage"
暂时记到这里