Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可能的缺点是什么&;像Ember或Angular这样的Javascript框架相对于在项目中使用简单Javascript的优势是什么?_Javascript_Backbone.js_Angularjs_Ember.js - Fatal编程技术网

可能的缺点是什么&;像Ember或Angular这样的Javascript框架相对于在项目中使用简单Javascript的优势是什么?

可能的缺点是什么&;像Ember或Angular这样的Javascript框架相对于在项目中使用简单Javascript的优势是什么?,javascript,backbone.js,angularjs,ember.js,Javascript,Backbone.js,Angularjs,Ember.js,我正在考虑在我的项目中使用Javascript框架。但我很困惑,我应该使用框架还是使用简单的Javascript。此外,我还想指出一点,我在Javascript方面没有太多经验。对于Javascript初学者,您有什么建议?库可能非常好。它们可以帮助您分割代码,它们可以帮助您更轻松地完成很多事情。我已经开始发现主干对AjaxyWebAPS特别有用。使用JQuery,$('#element').hide()比document.getElementById('element').style.disp

我正在考虑在我的项目中使用Javascript框架。但我很困惑,我应该使用框架还是使用简单的Javascript。此外,我还想指出一点,我在Javascript方面没有太多经验。对于Javascript初学者,您有什么建议?

库可能非常好。它们可以帮助您分割代码,它们可以帮助您更轻松地完成很多事情。我已经开始发现主干对AjaxyWebAPS特别有用。使用JQuery,
$('#element').hide()
比document.getElementById('element').style.display=“none”简单得多,以及JQuery
.toggle()甚至比这更好。在大多数情况下,它们也很容易为您处理跨浏览器问题

从设计/架构的角度来看,最大的缺点是开销。一旦您开始为所述库使用库和插件,谁知道代码质量如何

从个人发展的角度来看,最大的风险是你将开始把图书馆当作一个拐杖,而从不去了解这些图书馆为什么或如何做他们所做的事情。我讨厌看到一个页眉中有15000个(exageration)
块的网页,它们可能利用了它们所使用的所有插件和框架功能的十分之一。编写5-10行代码要比有一个额外的HTTP请求并加载整个JS模块来使用其中包含的一个函数要好得多

我个人的建议是使用库,但要始终努力理解它们在做什么,并挑战自己至少自己编写一部分JavaScript,直到您知道JS内部发生了什么,以及为什么会这样。一旦达到这一点,您将能够更好地评估库或插件是否真的是您所需要的,或者您是否应该自己编写一些东西。

关于初学者的疑问: 当我去年开始使用AngularJS时,我还处于初级JavaScript阶段。学习它的基础知识真的很容易。更好的是,它可以帮助您使用很少的代码行来完成相当复杂的事情。您编写的大多数代码都是AngularJS所称的指令,这些指令也是最可重用的部分

一些高级概念可能很难理解,也需要一些时间,但总的来说,我要说的是,通过AngularJS的进步让我对JavaScript有了更好的理解

这至少是我的经历,而且这篇文章的目的不是推销AngularJS。在我看来,学习一门编程语言,至少在大多数情况下,最好是自己挖掘它的原始特性。但是有了JavaScript——以及它的所有怪癖——我发现有一些东西来指导我非常有帮助

关于项目框架: 当你想要一个有大量代码和交互的大型应用程序时,我发现框架对你帮助很大。现在有很多JavaScript框架,它们都很好。如果您想扩展HTML并进行声明式编程,有AngularJS。如果你想在不同的抽象层次上工作,有Ember.js。如果您想自己编写大部分实现,请使用Backbone.js。如果您正在做大量GUI工作,ExtJS。这些框架中的大多数将帮助您编写更干净、模块化和更易测试的代码,从长远来看,这将极大地提高可维护性

不利因素可能是:

  • 学习曲线-但如果你是初学者,那么你不必担心这一点
  • 过度杀伤力-对于某些项目,您真的不需要包含500KB的框架和库
  • 不匹配——我认为这可能是最重要的因素。例如,一些框架更适合于可视化的东西,比如图表和动画,而另一些框架则适合于其他东西
  • 结论:
    • 确定你想要实现的目标
    • 找到适合工作的工具
    • 该框架/库(如果不需要,则两者都不需要)将有很大帮助
    最后,更像一般规则:

    • 不要因为事情对你来说太陌生而害怕把事情做好

    找一位了解javascript以及各种库和框架的人来分析您的项目,然后确定使用它们的成本和好处。如果你不能证明费用是合理的,那么这可能无关紧要。只需使用javascript,希望您在项目结束时了解足够的内容,以便下次知道框架或库是否有帮助。这是一个很好的问题,但对于初学者来说,您应该从简单易学的内容开始,例如主干或角度。我不反对余烬,但该框架不适合初学者。与vanilla JS相比,框架的主要优势在于,所有仪式性的东西(如AJAX和其他UI类型的功能)都得到了处理,因此您可以专注于应用程序的逻辑。这并不是一个完美无缺的解决方案,但它将帮助您成为一个更高效的开发人员。当然,您也应该知道幕后的工作原理。+1库还可能导致糟糕的设计决策,这些决策受到开发人员对库的知识的限制,例如使用复杂的选择器和长链的尾部调用。库也经常被过度使用,因为开发人员认为他们已经加载了一个库,所以应该将它用于所有事情,即使在本机脚本或直接DOM效率更高、编写代码更少、更健壮的地方也是如此。请记住:更容易但速度较慢>>