最近从angularjs
转到学习angular
,虽然有了前面的项目实践的经验,这几天的学习整体来讲仍是比较轻松的,可是也是之前的思想的缘故吧,踩了好几个坑。java
咱们知道,angular
使用的是typeScript
语言,带类的js语言。这就让我这个写惯了js和java的有点难受了。angularjs
java中,定义变量都是先声明类型,而后才是变量名:函数
private Test test;
可是在ts
(typeScript简称,后面我都会以ts表明)中,变量的定义是先定义变量名,而后才声明变量的类型,并且还有一个冒号:组件化
private test: Test;
另外,还有箭头表达式:学习
let fn = () => a + b;
他就至关于:ui
let fn = function() { a + b; };
像let
和const
代替var
,箭头表达式
代替匿名函数
等等,这些小的细节部分都让我没少出问题。spa
angular
最为核心的就是组件化,将单页面分为若干个组件,.net
而后将组件进行拼接。code
这就有点向咱们在angularjs
中使用的ui-view
,可是他要比ui-view
组件化的更加完全。blog
组件化就要求咱们要作好一个规划:
1.将一个页面分为哪几个组件.
2.组装好。
3.最后去实现组件的功能。
要不就有可能出现我在学习中出现的问题:组件组装错了位置。并且相信在后面的项目中,咱们会建立大量的组件,清晰的整理组件之间的关系会让项目的开发变得简单。
angular
默认单向数据绑定,要使用双向数据绑定就要使用[()]
的形式:
<div> <span>name:</span> <input [(ngModel)]="hero.name" placeholder="hero"> </div>
其实他angular
的绑定是这样的:
数据绑定:使用[]
事件绑定: 使用()
双向数据绑定:数据绑定 + 事件绑定,因此是[()]
还有一些就是angular
自带的装饰器,好比@Component
,@Input
,@NgModule
等等,这些都是angular
内部写好的。
还有angular
的内置指令
也和angularjs
有所区别,像是ngIf
和ngFor
,他们在使用时都须要在前面添加一个星号:*
,例如:
<div *ngIf="object"> ... </div>
这个星号实际上是一种语法糖
,简化了ngIf
和ngFor
的原有的写法,而且也使得代码更符合咱们的广泛要求,更加易读。
经过几天的学习,对angular
有一个初步的了解。可是仍是要经过项目的磨炼才能对更加深刻的原理等深层的东西有一个比较深入的理解。
可是经过此次学习,也是发现了,咱们学习语言主要学习的是思惟,当咱们的思想有了,那么其余的都是想通的。