最近看知乎,好有多讨论ng的,有观望准备学习的,也有使用中传播经验的。
我们公司算是大范围用(金融类核心系统,ng的业务相关的代码量在百万级别),ng的经验算是积累了些,写这篇blog发表下我的一些看法。
1. 如题目说angular是强大的,这里是有应用场景做背景的,双向绑定很多框架都能做,但
scope的设计 + 容器思想 + 双向绑定这些特性组合起来,更适合复杂的web开发场景:组件化,解耦。
2. angular官方介绍的首先提出的是增强的html语法,组件化技术也有很多,和服务端驱动相比,处理视图部分ng的理念应该是标记语言+ 声明式更适合UI,简单很重要。做一样的功能,抽象UI对象,用命令过程式编程驱动开发,比起html/css不够简单,灵活。(这方面很多流派,前端、后端的很多,这里是表达个人看法)
3. 扩展、灵活性很高,但方式约束性强
a) 和第三方库的兼容使用上,虽然有个the angular way,但不妨碍和一些成熟的库结合,如地图、编辑器,图表
b) compile link的api足够应付各种复杂、灵活的需求(动态的模板,动态的模型)
c) the angular way还是约束很多的,这样也有利于大家保持一致的编码风格,这个对于大点的项目来说很重要
4. 强大可扩展的校验机制——围绕ngModelController/ngForm构建的绑定拦截和校验机制,真是太灵活了
这些设计做业务系统把模型和校验分离得很清楚啊
$parsers/$formatters
$setViewVal
$errors/$invalid/$valid
$pristine/$dirty
当然也有吐槽的地方,比如:
1. ng-options生成的option没有title,要自己加指令做dom操作
2. ng-options性能差啊,我们重写了用html拼接实现的简化版,借鉴了dom重用思路
3. bootstrap不支持嵌套dom,我们都是先把模板放在body下的平级,隐藏,编译后,然后做dom操作形成父子结构
4. 为什么有上面一条,是因为angular不支持“热插拔”,bootstrap之前,必须所有的directive/controller/filter/service都到位的,但不是所有的应用都是SPA,一个应用的js/html的定义有延迟加载的情况
5. ng-repeat性能差啊,bindonce只能一定程度上缓解,很多时候我们用html字符串模板 + 事件代理方式处理,包装成双向绑定形式给开发者用
6. 有时候还需要用同步ajax的
相关推荐
angular之interceptors拦截器
Key Features, Get up to date with the latest changes to Angular 2, including the improvements to directives, change detection, dependency injection, router, and moreUnderstand Angular 2's new ...
从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...
Learn Angular: The Collection By 作者: David Aden Pub Date: 2018 ISBN: n/a Pages: 657 Language: English This book is for all front-end developers who want to become proficient with Angular and its ...
Angular-angular2-mdl.zip,基于Material Design Lite的Angular 2、4、5、6、7、8组件、指令和样式(NPM:@Angular MDL/Core)基于Material Design Lite的Angular 8组件、指令和样式https://getmdl.io(v:1.3.0)。...
Angular 本身使用 TypeScript 写成 的。它将核心功能和可选功能作为一组 TypeScript 库进行实现,你可以把它们导入你的应用中。 Angular 的基本构造块是 NgModule,它为组件提供了编译的上下文环境。 NgModule 会把...
angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9angular-1.6.9...
angular2文档,We developed this book to be used as course material for Rangle's Angular 2 training, but many people have found it to be useful for learning Angular 2 on their own. This book will cover...
从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...
Angular-angular.zip,角度的ui路由器:角度的基于状态的路由(v2 );角度的ui路由器;,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面...
Angular-angular-electron-dream-starter.zip,Angular Electron初学者工具包,包括Webpack、Angular 4(路由器、HTTP、表单、服务、NGRX、测试、E2E、覆盖范围)、Karma、Spectron、Jasmine、伊斯坦布尔,以及带有...
基于angular4的系统框架,包括angular2,以及各个组件,模块
Essential Angular by Victor Savkin English | 31 May 2017 | ASIN: B0716BBX9P | 108 Pages | AZW3 | 1.07 MB Key Features Written by two Angular core contributors A complete overview of the key aspects ...
angular学习angular学习angular学习angular学习angular学习angular学习
angular2.0.1英雄之旅案例源码。简单易懂。适合称呼学者
Angular 2 By Example by Chandermani Arora English | 4 Nov. 2016 | ISBN: 178588719X | 458 Pages | MOBI/EPUB/PDF | 12.97 MB Angular 2 will help you build faster, more efficient, and more flexible cross...
主要介绍了Angular17之 Angular自定义指令的相关知识 ,需要的朋友可以参考下
Angular-angular-wasm.zip,Angular 2 使用WebAssemblyAngular和WebAssembly的服务和指令,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面...
从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...