[WIP] 一个基于Angular最新版搭建的博客类小项目

发布时间:2019-07-14 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了[WIP] 一个基于Angular最新版搭建的博客类小项目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
前言:因为项目需要学习了一下Angular,按照官网的教程做了一个简单粗糙的小项目。大致的功能有博客的新建,删除,查看详情,列表展示。使用内存Web API模拟远程服务器,进行数据操作。临时安排的变动,可能没有太多的时间持续研究,所以现在这里记录一下。以下是我边学习边记的一些笔记,方便日后回来可以快速回忆起相关技点。

路由

一个配置了路由的Angular应用有一个路由服务的单例。当浏览器的url改变的时候,路由就会去配置里
找到相应的路由信息,根据该路由就可以决定展示哪一个组件。
路由器会把类似URL的路径映射到视图而不是页面。浏览器本应该加载一个新页面,但是路由器拦截了这一行为。
<router-outlet>标签官网上说它起到了placeholder的作用,当路由根据url找到要展示的组件时,就会把这个组件填充到<router-outlet>中去。
获取路由中的参数信息: +this.route.snapshot.paramMap.get('id');
route.snapshot 是一个路由信息的静态快照,抓取自组建刚刚创建完毕之后
paramMap是一个从URL中提取的路由参数值的字典。
javascript(+)操作符会把字符串转为数字

数据绑定

用指令 [(ngModel)]="data.content"可实现
遇到报错 在app.module中导入import { FormsModule } From '@Angular/forms';

HTTP获取资

主要是使用了common包下的HttpClientModule这一个模块,使用它则需要把它先导入进app.module中,然后在需要用到的service中导入相应的模块,例如HttpClient,HttpHeaders等。HttpClient提供了很丰富的Http协议的请求方法。实际使用时可参考源码。
请求失败处理:catchError() 操作符会拦截失败的 Observable。 它把错误对象传给错误处理器,错误处理器会处理这个错误。因此异常被处理后,浏览器的控制台不会报错。

状态管理 ngrx

redux的关系:ngrx/Store的灵感来源于Redux,是一款集成RxJS的Angular状态管理库,由Angular的布道者Rob Wormald开发。它和Redux的核心思想相同,但使用RxJS实现观察者模式。它遵循Redux核心原则,但专门为Angular而设计。
Actions(行为)是信息的载体,它发送数据到reducer(归约器),然后reducer更新store(存储)。Actions是store能接受数据的唯一方式。

组件化思想

把所有特性都放在同一个组件中,将会使应用变得难以维护。因此需要把大型组件分成小一点的子组件,每个子组件都要集中经历处理某个特定的任务或者工作流。

依赖注入

DI,是一种重要的应用设计模式。实现方式:类从外部源中请求获取依赖,无需自己创建。DI框架会在实例化该类时向其提供这个类所声明的依赖项。
@Injectable()装饰器是每个Angular服务定义中的基本要素,把当前类标志为可注入的服务。
注入器:负责创建服务实例
提供商:告诉注入器如何创建实例

服务

组件不直接获取或者保存数据,而是把这一块的功能放在service中,让组件专注于如何展示数据,如此开发使得项目的每个模块功能更加明确。service里的方法应该都是异步的。Observable(可观察对象)的版本可以实现。

ES6相关

一个模块从另一个模块import进来,若是

  • 一个值 :直接取值取到的是一个会被缓存的结果(例如获取webstorage中更新的值,必须要刷新页面)
  • 函数,获取一个值的引用,会调用该函数,取到最新的值

控制台输出与Debug

有时候会发现控制台输出的结果与直接在js文件里进行debug所显示的结果不一致,那是因为,console.LOG()采用了懒加载的机制,它展示的是一个引用的值,当你点击三角箭头的时候,它会去加载当前变量的值。但debug的数据具有“实时性”。不一致的情况经常出现在一些异步代码中。

如果你看到这里,觉得内容有误或有可改进之处,欢迎你的提出~

脚本宝典总结

以上是脚本宝典为你收集整理的[WIP] 一个基于Angular最新版搭建的博客类小项目全部内容,希望文章能够帮你解决[WIP] 一个基于Angular最新版搭建的博客类小项目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。