开始准备
- 安装 nodejs
|
- 安装@angular/cli
|
- CLI 命令建立项目
|
选择是否加入路由模块以及哪种 css 预处理器
可 ctrl+c 取消自动安装 node_modules,手动进入项目 npm install
node-sass 安装不上可切换淘宝镜像库或者用 cnpm 安装
- npm config set registry https://registry.npm.taobao.org
npm install
or
npm install -g cnpm
cnpm install启动项目
|
语法
生成组件
|
组件引用
|
|
插值表达式
将业务逻辑中的数据通过插值表达式显示在模板文件,即 html 页面上,或者将 html 页面上的事件传输到业务逻辑。
|
属性绑定
|
插值运算 加减乘除/字符串拼接/三元/方法调用
事件绑定
|
模板指令
判断指令
|
样式指令
|
循环指令
|
属性 | 说明 |
---|---|
$implicit: T |
声明在构造函数中 |
ngForOf: U |
声明在构造函数中 |
index: number |
声明在构造函数中 |
count: number |
声明在构造函数中 |
first: boolean |
只读 |
last: boolean |
只读 |
even: boolean |
只读 |
odd: boolean |
只读 |
管道符
在 ts 中的用法
|
自定义管道
|
为了节省性能,angular
内部对管道进行了优化,参数 pure
为 true
时(纯管道),当只有数据变化时,才会触发管道的执行,
基于这样的机制,angular
管道无法检测到数组,对象这样复杂数据类型的值的变化,所以针对这样的数据 pure
应设为 false
(非纯管道)
|
内置管道
管道名 | 用途 |
---|---|
date | 日期管道,格式化日期 |
json(非纯管道) | 将输入数据对象经过,JSON.stringify() 方法转换后输出对象的字符串 |
uppercase | 将文本所有小写字母转换成大写字母 |
lowercase | 将文本所有大写字母转换成小写字母 |
number | 将数值按特定的格式显示文本 |
percent | 将数值转百分比格式 |
currentcy | 将数值进行货币格式化处理 |
slice(非纯管道) | 将数组或者字符串裁剪成新子集 |
i18n | 翻译管道 |
组件注册
- declarations: 声明该模块中拥有哪些组件、指令和管道。这些组件等都是该模块中的局部组件。
- imports: 声明该模块所依赖的其他模块。在该模块中使用了其他模块导出的组件、指令和服务时,必须先将这些模块引入进来。
- exports: 声明该模块中可被外部访问的组件、指令和管道。这些组件等都是该模块中的全局组件。
- providers: 声明该模块中提供的服务。这些服务可以被该模块以及该模块所依赖的其他模块使用。
- bootstrap: 声明该模块的根组件。通常情况下,只有应用的根模块才会设置该属性。
|
防抖方法实现
|
searchText$
是来自用户的搜索框值的序列。它被定义为 RxJS Subject
类型,这意味着它是一个多播 Observable
,它还可以通过调用 next(value)
来自行发出值,就像在 search()
方法中一样。
除了把每个 searchText
的值都直接转发给 PackageSearchService
之外,ngOnInit()
中的代码还通过下列三个操作符对这些搜索值进行管道处理,以便只有当它是一个新值并且用户已经停止输入时,要搜索的值才会抵达该服务。
debounceTime(500)
—等待用户停止输入(本例中为 1/2 秒)。distinctUntilChanged()
—等待搜索文本发生变化。switchMap()
—将搜索请求发送到服务。
父子组件通信
Input、Output 传值
|
服务总线
- 注册服务
|
|
service
也可以指定在某个某块生效,比如下方 service
就只在UserModule
中生效
|
- 组件内发射数据
|
- 组件接收数据
|
标签变量引用
|
路由导航
|
|
路由懒加载
使用loadChildren
可以配置路由懒加载
|
http 服务
|
如果想使用async
语法,可以把angular
观察对象转成promise
|
集中处理 http 的 error
|
angular 通过 ip 访问
绑定到0.0.0.0
上
|
angular.json
|
- 本文作者: luckyship
- 本文链接: https://luckyship.github.io/2021/05/12/2021-05-12-angular7-base/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!