我们开始越来越多地在项目中使用JavaScript来改善客户体验。目前,我们的大多数网站都会回复几乎所有用户互动。我们主要在服务器上使用Asp.Net在客户端上使用JQuery和纯JavaScript。事情开始变得非常混乱,客户端也没有组织。
我在考虑选择像Knockout,Angular,Ember或Backbone这样的客户端框架来为我们的客户端开发引入某种结构。特别是现在还处于早期状态并且JavaScript不是一场彻底的灾难。我想知道使用客户端框架是否有任何缺点,如果我们应该坚持使用JQuery。我们从使用客户端框架中获得了什么?
答案 0 :(得分:5)
最近的Javascript框架可以帮助构建您的代码,使其具有模块化(因此可重用),干燥,可读,高效和安全,最重要的是具有凝聚力和易于理解。 jQuery不是一个框架,因此在这些方面没有帮助。我们都看到了jQuery意大利面条代码的典型批量。这不是jQuery的错 - 这是开发人员的错,他们不知道如何构建代码。但是,如果开发人员确实知道如何构建代码,他们最终会编写某种最小的“框架”来提供基础(架构等)。
这里的问题是我们不应该忘记jQuery代码缓慢而稳定地变得如此笨重和非结构化,以至于你可能会编辑它。但是,使用您列出的任何框架[以及其中一些]肯定会给您带来一些额外的好处。
以下是现代框架提供的一些内容:
模板
数据绑定
路由(单页面应用)
清洁,模块化,可重复使用的架构
安全
为方便起见,附加功能/功能
因此,以简短而甜蜜的方式,选择您列出的其中一个框架[个人而言,我使用并更喜欢AngularJs]
答案 1 :(得分:3)
如果你真的很好地组织你的代码,只需javascript和jQuery就可以超级强大。
Angular似乎是每个人都喜欢的框架,但它有一个陡峭的学习曲线。 (在我看来)
无论你使用什么,我都遵循以下原则:
将所有内容放在一个对象中并超出全局范围。
myApplication = {}
然后,您可以将所有功能分组到对象中,以便组织它们:
myApplication = {
navigation: {
loadNavigation: function() {
// do something;
},
hideNavigation: function() {
// do something;
}
},
otherObject: {
otherFunction: function() {
// etc
}
},
init: function() {
myApplication.navigation.loadNavigation();
// other functions to run;
}
};
然后您只需加载一个应用程序代码:
$().ready(function() {
myApplication.init();
}
我发现这种模式可以让我构建大型应用程序,而不会让事情变得混乱。