Jquery 与新的 Javascript 框架/库(Angular、Ember、React 等)[关闭]

Posted

技术标签:

【中文标题】Jquery 与新的 Javascript 框架/库(Angular、Ember、React 等)[关闭]【英文标题】:Jquery vs. New Javascript Frameworks/Libraries (Angular, Ember, React, etc.) [closed] 【发布时间】:2015-07-28 02:45:47 【问题描述】:

我是一名 ruby​​ on rails 开发人员,最近才开始学习 jquery 以外的 javascript 技术(Angular 和 React)。我阅读了其中几篇比较文章,以了解为什么人们使用不同的 javascript 框架和库,但我仍然很难弄清楚它们的重要性(很可能是由于我对网络的工作原理缺乏了解?)。我在使用 Angular 和 React 时发现的一件事是,我不需要像以前使用 jquery 那样单独处理 ajax。另外,我似乎很欣赏 React 的语法和组件。

无论如何,请帮助我理解为什么我应该使用 Angular 或 React 而不是 jQuery。有没有我可以用一个做但不能用另一个做的事情?有些比其他的快吗?这只是风格和偏好的问题吗?

【问题讨论】:

查看这个 SO 帖子(来自类似问题)link,当然还有最近超级流行的link 访问tomvc.com,它会帮助你 jQuery是袖珍多功能工具,angular是宜家家具,react是预制房间。 随着时间的推移学习 javascript 并构建自己的框架。首先在 jquery 中编写它,因为它很容易,并且他们尽可能地减少它以坚持纯 javascript。经过 20 年的循环,我尝试了所有的框架。我已经把它们都扔掉了,除了 jquery。当我采访年轻的程序员的工作时,他们都想用他们的框架知识、angularjs 和这个或那个给我留下深刻印象......所有这些层都是无用的,只会增加复杂性。这个论坛中 80% 的问题都是关于尝试使用复杂且市场良好的框架来处理基本内容。阅读答案很有趣。 【参考方案1】:

我认为你应该检查 ember-cli,因为它的开发人员更多是 ROR,http://discuss.emberjs.com/ 是用 ROR + Ember-CLI 构建的,你可以在 https://github.com/discourse/discourse 上获得它的完整源代码

【讨论】:

【参考方案2】:

无论如何,请帮助我理解为什么我应该使用 Angular 或 React 而不是 jQuery。

你不需要它们中的任何一个。为什么要学习最新的框架?无论如何,它只会在几年内过时。只需了解如何利用影子 DOM 和 html 等现代 Web 技术。

另一方面,如果您想要快速原型设计,请使用框架。只知道总有一天会发生故障,您将需要探索黑色迷宫,这是您选择的框架的未记录代码,只是为了在经过几天的搜索和挫折后发现,这是您代码中的一个简单逻辑错误如果您完全了解所述框架的功能和内部工作原理,并且没有任何文档最多完成 10% 以上,那么您将永远继续这个循环,直到您停止使用框架。这只是您为更快的开发付出的代价。

框架的力量也是它们最大的弱点。我们喜欢 Angular 这样的框架,因为它们通过抽象出复杂性并允许我们编写更少的代码来为我们提供结构和力量。出于同样的原因,随着我们代码库的增长以及我们在所选框架中变得更加根深蒂固,抽象层会滋生无知和懒惰。

在我看来,最好的选择是尽可能多地学习,这样当一个新项目落在你的腿上时,你就会做好准备,它是用 angular 或 react 之类的框架编写的,但如果可以选择,合乎逻辑的决定是专注于编写轻量级的可重用 javascript 组件,无需任何库、框架或您与 DOM 之间的任何其他东西。

但您可能会争辩说,“这不会最终导致您最终编写自己的框架吗?我不想重新发明***!”即使这是真的(我并不是说它是,至少您将充分了解框架及其内部机制的功能和限制。但如果您利用现代 Web 技术编写智能可重用代码,您最有可能不需要框架,您也不会编写框架。

如果您选择了一个框架,我的建议是从提供的文档和堆栈溢出中尽可能多地了解它。事实是,要提交一个项目以使用一个框架,你应该足够了解这个框架,如果你需要的话,你可以在没有它的情况下相处。如果你愿意承诺,我会说去吧!

【讨论】:

如果您从somewhere else复制您的内容,请添加指向源的链接;否则,这可以被认为是抄袭。谢谢。 我已经从这个答案中删除了剽窃的内容 - 它显然也有原始内容,因此不会被标记给版主。

以上是关于Jquery 与新的 Javascript 框架/库(Angular、Ember、React 等)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

通过 javascript 与新创建的 html 交互

[技术发展-27]:互联网平台的常见算法与新的治理办法

Arm 通过虚拟硬件与新的解决方案导向的产品 带动物联网经济转型

Javascript框架日历插件[关闭]

新的 NSManagedObject 子类与新的 NSObject 子类?

Callback 与新的 AsyncCallback(Callback) 有啥不同?