关于使不使用js库的问题


做为一个前端程序员,我一直有这样的一个疑问,就是用不用 js库 js库 有很多例如 jquery Prototype 等,但是像阿里,腾讯,百度这样的大公司都是自己开发公司的框架和库。
在前端学习,在前端群里面聊天,很多人都不推荐使用 js库 ,特别是 jq ,这到底是为什么,一定要写原生的 js代码 吗。我一直就有这样子的一个疑问。
前端也没有一个很明确的方向, 原生js 固然很重要,但是为什么那么多人,要放弃 轮子 选择走路呢,有的人是自己造 轮子 ,为了表现自己,提高价值吗

jquery web前端开发 移动web开发 JavaScript

赤赤的祈祷 9 years, 11 months ago

其实还好,并不是说不用框架或者说放弃已有的轮子,但一方面想的是轮子造好了,很多人就直接用了,但是很少有人会去想这个轮子是怎么造出来的,如果没有有这个轮子的时候,自己能否造出来一个!也就是说原有的框架可以用,也可以自己去造,因为很多的东西并不是已经造好的轮子就已经能实现所有的东西,而且已有的轮子可能冗余太多的东西,有时候自己写那也是为了只取自己需要的!只是一个选择问题而已!

hooriu answered 9 years, 11 months ago

我个人感觉用原生不用公共js库的原因:
1、要求严格控制js库大小,不使用的功能坚决不加入;
2、有比公共js库更好实现;
3、不想过分依赖第三方js库,万一哪天有一个你要用的功能突然说不支持了或者改了,怎么办?
我是从性能和维护角度考虑的,应该还有别的原因,不知道对不对

Amiko answered 9 years, 11 months ago

这个问题5年前就想过,也有人问过,简单说说自己的观点:
1、首先纠正楼主的一个可能错误的认识:阿里,腾讯,百度这样的大公司有自己的框架,但是在具体的产品线和项目中同样会用到别人的框架,有时候甚至是大面积的。
2、用还是不用完全视项目的需求而定,即使用也难免会遇到框架本身或者框架与需求之间冲突等等各种坑,这时候怎么办?项目还是要继续,这时候就必须运用原生的语法解决问题,有时候甚至会修改框架的核心部分以解决问题。
3、即使从个人成长的角度出发么,使用框架本身没有问题,问题在于不能依赖框架,不能说脱离了jp就完全不懂js,这样肯定是不行的。框架在运用的过程中也是自己的学习过程,适当的尝试看看框架的源码,看看那些前辈是怎么组织代码的,这同样是学习和提升。

天上有灰机 answered 9 years, 11 months ago

自己造轮子,命运可以掌握在自己手中啊。

holden answered 9 years, 11 months ago

按我看,一切都是选择的宿命,控制的欲望。有时候特殊的一些业务需求,不太确定,是否用框架,用哪一个框架?等等的选择困惑中。而造轮子,恰恰是能够了解实现细节或经历的一个过程。
而且有时候,在正式开发前,技术的选型,或正式的开发是有区别。

无爱D飞鱼 answered 9 years, 11 months ago

楼主多虑了,原生Js是基础,Js库是生产力,掌握原生Js是在Js库出现不适用眼前的场景时对Js库进行修复再构造,甚至自己写特定于某个场景的Js库,Js库是原生Js发展到今天大规模部署生产时的必然结果,你可以把原生Js理解为锤子螺丝刀,Js库理解为流水线车床。建议楼主熟练使用Js库,并研究Js库实现的原理即原生Js,两手抓。至于用不用Js库的问题,原生Js和Js库哪个好,看需求吧,即使是在实现某个需求时觉得原生Js比Js库好,那么在大规模部署生产面前,你还要自己写特定的库的,这是发展的必然。

罪与罰与贖 answered 9 years, 11 months ago

框架要用,但是原生也必须会。 这两个并不是对立的冲突面 。框架可以极大提高生产力,但是封装了太多底层基础操作,如果自己不清楚具体实现的话,对技术实力增长无益。

我与泰迪对愁眠 answered 9 years, 11 months ago

那些放弃造轮子的人要么已经造过轮子,有能力造轮子,知道何时造轮子了的人说的风凉话。要么是一些人云亦云的跟风者(新人)。

不用js库能不能做项目,能不能解决问题?答案是肯定的。原生js重要吗?答案也是肯定的。
各种库都只是给原生js加上各种特效用于更适应某一种应用场景而已

抛开场景谈技术都是耍流氓。

用不用的最重要标准之一就是: 是否适合当前业务场景和使用后对项目有没有质的提升 。重展示和炫酷效果的和重操作和业务交互的肯定是不一样的。当然像 jquery 这种万金油啥地方都可以插一脚。作为学习而言,原生的js是你必走的一条路。你可以不太深入,但基础的还是必须要懂。这为你以后使用轮子也好,造轮子也好都有益无害。

以上

好地地唔得嘅 answered 9 years, 11 months ago

Your Answer