@CatFaceWest 在 《在Vue3使用纯JSX编写业务代码是否搞错了什么》 中发帖
最近写了个绅士漫画下载器,前端尝试在vue3里使用纯jsx
先说结论
纯jsx在vue里的ts支持很差,普通的业务代码用纯jsx就是找罪受,除非你不用ts
最佳实践应该是老老实实用template,只用jsx代替h函数
槽点
1. jsx插件的文档里说支持v-model,然而这玩意ts识别不了
ts: “v-什么?没听说过” 🤪
目前大家是靠奇技淫巧让ts不报错的(或者说碰巧?)
我的建议是直接当作没这个功能算了,老老实实 value={a.value} onUpdate:value={(v)=>(a.value = v)}
2. 将组件内部的东西暴露出来很麻烦
要么在setup里调用expose,这种方式能用,但外面没有代码提示(ts又要报错了)
要么在setup的return里返回要暴露的东西,这样外面有代码提示了,但又不能直接在setup的return里直接写r...