@
ejin #7 来回看了半天,0-6 楼说的都是 react ,为什么突然冒出个 vue ,走错片场了吧?
Vapor 这种东西应该丢到 vue4 去搞,vue3 的一堆问题都还没搞定。
而且现在有人在意性能吗,反正我自己不在意。大厂用 react 多,react 性能那么差,性能真的有关系大厂早大量迁移到 vue3 去了。
我个人比较在意 vue 的一堆 typescript 相关问题,比如 defineProps 直接丢掉 undefined ,而官方对此表示这是合理的
const props = defineProps<{
a?: boolean
}>()
props.a
// ^? (property) a: boolean
直到支持了响应式解构才勉强算解决了这个问题,但是 defineProps 与 typescript 行为不一致依然是不合理的。
const { a = undefined } = defineProps<{
a?: boolean
}>()
a
//^? const a: boolean | undefined
vue 运行时再快有屁用,vue-tsc 比 tsc 慢了 5 倍,vue-eslint-parser 无法享受 typescript-eslint 的性能改进,vue 官方明确表示不会支持类型感知,只能社区自己搞了个勉强能用的,但是太慢,后端 lint 检查 12 秒,差不多体量的 vue 检查要 80 秒,慢了 7 倍,插件越多这个差距还会接着放大。
运行时性能差距,没人关心,用户也感受不到几十到几百毫秒的差别,相比之下 vue 与 typescript 的融合体验被 react 吊打。react 不会插件天天报错,升级版本换另一个报错,不会拖慢 CI/CD 检查,不会与 typescript 有不一致的行为,不会被 typescript-eslint 维护者指着鼻子说 Vue 社区对于支持 type linting 没有兴趣
https://github.com/typescript-eslint/typescript-eslint/issues/2865#issuecomment-742647474