首页 > AngularJS 对开发有帮助么

AngularJS 对开发有帮助么

看了AngularJS的文档,网上看了一些人说这个多强大,多少优点。
我没感觉到他能做啥很麻烦的事情,有一些小改进,但是不明显。
是我学习不仔细,没发现么?


虽然另外有同学提到了, 这种东西的好处只有在你项目经验积累到一定程度才能体现出来. 不过出于广告的目的, 我还是简单说说.

就像如果题主刚刚接触编程, 函数都还不熟, 看到 OOP, 可能就会问, 这有什么好处? 即使后来掌握了相关的语法糖, 依然对它们的实用价值抱有疑问, 这个是非常能理解的.

回到 AngularJS 这一类 MVC/MVVM 框架, 它们存在的价值是什么? 答案也很简单, 其实和 OOP 这类一样, 是为了减少代码耦合, 降低逻辑难度, 提高可靠性. 那为什么较为直接的方法就不行?

先说较为 "直接" 的方法, 也就是 event driven. 举一个简单的例子, 界面上有一个元素的状态可能因为用户在几个不同的地方进行的交互而改变, 而这些交互发生的顺序, 频率, 等等都可能和该元素的状态有关系, 在任何一个可能触发该元素状态改变的地方, 都需要一套判断机制, 来确定该元素的最新状态.

这样写可以吗? 当然可以, 但是可靠么? 这就是考验你逻辑严密与否的时候了. 稍微一点逻辑出现问题, 甚至稍微疏忽改了这儿忘了那儿, 等等, 都可能引发问题.

MVC 呢则是 data driven, 在 UI 和交互之间, 增加了一层数据, UI 只关心这些数据中一个或多个的状态, 不再关心是否发生了各种各样的事件, 而交互则只关心更新这些个数据, 而不再关心 UI 会有什么变化. 这样一来, 原本繁杂的逻辑得到了极大的简化, 一方面降低了开发者的思维难度, 另一方面也从客观上降低了问题产生的概率.

接下来是广告时间~

因为学习 AngularJS/Ember 这些都是有成本的, 只是掌握了 API 其实是不够的, 不了解里面的实现细节, 写的时候也就没底气, 因为不知道每一个操作的代价是什么, 于是果断造了轮子. 并且用到了项目开发上. 不过因为是新轮子, 也发现了设计上的一些问题, 未来会重写, 但是欢迎点 star 啊点点点 star 啊.

https://github.com/vilic/drop


如何定义有帮助呢?让程序更有逻辑,更好维护,减少代码?
开发都是要结合场景的。
我觉得Augular最适合的还是应用级别的开发,最常见是企业内部的后台工具,这样的情况下肯定是有帮助的。
但是对于一些快速迭代的活动页面(只在一段时间内使用这种),Angular确实是没有帮助的。


如果原来的jQuery基础, 改用angular 后代码会少2/3 还要多.

学习路线有两种.
如果有jQuery 基础的, 首先要把jQuery 忘光光, 那么学习路线应该为 jQuery -> 忘记jQuery -> backbone(model 和 view, 路由router可以不用学) - angularjs

没有任何基础的, 建议直接angular, 而且你发现学的比jQuery 有基础的还要快,

最不好就是angular的代码里混了很多jQuery的代码. 完了 没救了

http://blog.csdn.net/postd_cn/article/details/38405833
http://damoqiongqiu.iteye.com/blog/1926475


建议加点路线

jQuery => Ember => Backbone => Knockoutjs => Angular

对了解前端开发、懂得SPA开发的基本流程、常见问题、痛点、性能调优等的开发来说,angularJS是利器,对缺乏上述经验的人来说,没有老司机带直接学angular很难理解angular复杂的设计背后的逻辑和目的,还容易忽略DOM基础


所有的框架都是在实际工程环境中抽离出来的,然后慢慢完善。所以如果开发经验不够的话,其实你很难比较到底使用 Backbone,Ember, React 还是 Angular。

但我觉得如果你对什么框架感兴趣那就用嘛,慢慢用多了,你就知道妈蛋这里要是自己用 jQuery 那得写到什么时候,有时候也会觉得还是自己写一个框架来得好,当然如果是写一般的应用你也会觉得用毛这些框架啊,还是手写来得好。


看了jQuery的文档,网上看了一些人说这个多强大,多少优点。
我没感觉到他能做啥很麻烦的事情,有一些小改进,但是不明显。 是我学习不仔细,没发现么?

如果这样说,是否理解了呢?



angularjs 是框架
jquery 是类库

本身是两个level上的东东

用angularjs本质上是以它的思路组织代码开发应用,框架帮你做了很多事情,包括双向数据绑定,module注入等。但是灵活性相应的降低,不太适合规模巨大的前端系统。


jquery只是控制dom。。。
angluarjs 最牛得地方就是数据双向绑定。对于一些交互非常复杂的页面很合适。


高并发的目标主要是后端Web服务。
以前所有都是后端模板的时候,因为一个页面涉及到大量的后端DB读取,容易让页面的渲染变慢。
现在页面除了主业务实体数据以外,其它大多依靠前端JS异步加载。甚至有人做绝对的静态页面,后端数据全部依靠异步加载
不过这两种方式不是绝对的,比如页面第一屏看不到的东西可以异步加载,现在的异步加载请求就想CSS和JS一样也开始走异步请求合并路线。所以在实际工程中一是要分析具体情况,二是掌握好一个度。


从大的方面总结下:大大提高了我们代码的“可复用性”、“可维护性”、“可测试性”

  1. 测试:特别是国外的公司,对测试要求很高的。angular开发的项目,很容易写测试。即使在国内,如果有测试的保证,至少不是一个茫然的程序员。
  2. 代码模块化,便于维护
  3. 对于混合移动开发,可以使用ionic,angular的黄金搭档,轻轻松松就开发一个手机端的网页或者封装成app
  4. angular的filter, directive还是很强大的
  5. 整体社区已经比较成熟,有很多现成的东西可以用,提供开发效率不是一点点
  6. 真正用过的都说好

angular入门很快,但是里面复杂的东西还是蛮多的

【热门文章】
【热门文章】