感谢图灵社区的电子书阅读奖励计划。
虽然Angular
与React
、Vue
并称三大前端框架,但实际上在国内的使用者却大大少于其他两个框架,这是为什么呢,Angular
不好用?难用?希望能在了解Angular
后对这个现状有所了解。
学习一个框架,首先就是看上手是否简单,虽然提供了angular-cli
,但并没有特别好用。。书中使用的ng new angular2_hello_world
在 2018年06月22日 使用是错误的,angualr-cli@6
在创建名称带下划线的项目时会报错:
Data path ".name" should match format "html-selector".
这是第一个问题,在创建项目后,准备开始写第一个组件了,但就这最简单的第一步创建组件就难倒我了,在不使用angular-cli
的情况下,需要手动创建三个文件
- component.css
- component.html
- component.ts
虽然vue
同样是需要写html
、css
和js
,但是可以并且推荐写在一个.vue
文件中,在一定程度上减少了操作成本。
而且单单创建后并没有用,还要在app.module.ts
中引入,而这一点并没有说明!!!而是在后面介绍NgModule
时才说明。
而且后面投票应用时,创建Article
组件,却又不使用cli
,而是手动创建,这个时候提到需要在declarations
内声明。。。。有点无语
除了上手外,就是一些基本概念了,是否易懂。就好比会Vue
,要上手React
会非常快,反之亦然。那么在React
的经验帮助快速理解Angular
呢?
父子组件通信
组件代码:
import { Component, OnInit, Input } from "@angular/core";
@Component({
selector: "user-item",
templateUrl: "./index.html",
styleUrls: ["./index.css"]
})
export class UserItem implements OnInit {
@Input() name: string;
constructor() {}
ngOnInit() {}
}
重点在name
给了Input
注解。
父模板代码:
<ul>
<user-item
*ngFor="let name of names"
[name]="name"
>
</user-item>
</ul>
相比还是非常不同,让习惯React
或者Vue
的开发者不能理解为什么要这么麻烦。
设计
本书除了Angular
的使用,还讲了一些如何写代码的内容,包括一些经典的设计法则。
Angular
还是和Angularjs
的目的一样,属于一个大而全的存在,它希望解决开发过程中的所有东西,包括表单验证、请求库、路由等,而在其他前端框架,都仅仅希望解决一个问题,react 就仅仅希望作为视图层,表单验证交给 UI 库,请求可以使用更加主流的库如 axios。
typescript 和 rxjs 确实提高了 angular 的门槛,当然还要加上特有的语法与概念。
那么在带来使用门槛的同时,它究竟能解决什么问题呢,
其实是「可维护性」与「规范化」,angular 提供的功能,促使开发者写出更好的代码。而 react 或者 vue,在使用过程中是非常自由的,但自由带来的另一面则是代码风格不统一,初学者写出的代码和熟练者是不同的。
如果对项目设计不是很熟练或者了解的同学,倒是可以从本书中体会到一些项目设计的东西,就Angular
本身来说,并没有特别大的吸引力,让我抛弃React
、Vue
转向Angular
。