yunyuyuan
2022-08-10 11:33:12 +08:00
如果你说的是 jq 写前端,那确实问题很多,还不止你说这些。
1. html 标签里边,需要手写的内容太多,自动补全方面比起一些后端语言,差太多。
> html 是一种描述性结构,类似 qml 这种。但使用框架是有自动补全的,react 里你输入`<button onClick={`,就能触发补全。
2. 外部的包,已经引入成功,也能正常使用,但是这个包的方法并不会自动补全,写起来很难受。
>js 是动态语言,这个包没有用 typescript ,没有 index.d.ts
3. 函数的写法太多了,什么箭头函数之类的,而且感觉写法挺奇怪挺麻烦,老是记不住。
> 普通函数,匿名函数,箭头函数三种,其实还有匿名 class ,并不难理解吧。比较难理解的是原型链,function 可以用 new 操作符实例化。
4. 前端编码不能很方便地看到函数的入参以及返回值,导致用的时候就很模糊,要么死死记住这个方法,要么就得再次看方法的源码。
> js 是动态语言,想要 IDE 提示,用 typescript 就行了
5. 前端对方法的调用也是各有便道(混乱),没有参数的函数不加括号也可以以至于后来再看并不好区分这是用了一个方法还会一个参数。在 template 区域,大多方法都是在双引号的包裹当中,以至于补全不力,无法跳转,更无法直接通过调用的地方看到方法的具体实现。
> 你说的是`<button v-on:click="func1"`和`<button v-on:click="func2()"`这种吗,func1 不加括号就是默认把$event 当第一个参数,而 func2 拿不到 event 。vue 的 template 区域补全,vscode volar 做得挺好的。
比起你说,我觉得 css 和 node_modules 更值得吐槽