VSCode 下调试 Angular Library

Photo by MAX LIBERTINE on Unsplash

VSCode 调试功能繁琐之处在于,

不同结构的项目往往需要手动编辑 launch.json 这个配置文件。

本文以 Angular Library 调试为切入点,

介绍在 VSCode 下调试 Angular Library 的方法。

为了更好的理解这个指南,

你可以首先 git clone ngx-spinner 这个仓库。

继续阅读VSCode 下调试 Angular Library

Base64 编码与 JSON 交换

JSON 是常用的数据交换格式。但是由于 JSON 本身并不支持文件图片等形式的附加数据,想要直接借助 JSON 来实现文件的传输非常困难。

一般的做法是,首先需要使用 Base64 编码将这些数据从二进制流编码成为字符形式,再封装成 JSON 格式进行传输。

本文首先讨论 Base64 编码大致原理,然后引入 MIME 类型的简单介绍,最后通过 Web API 来实现文件的自动编码实现文件图片等内容的 JSON 传输。

继续阅读Base64 编码与 JSON 交换

Angular 模块漫谈

Photo by Vanessa Lang on Unsplash

模块是 一个 Angular 应用组织的重要一环,通过模块之间的导入导出,我们可

以把复杂的功能分解到各个模块中,增强了代码的复用性可维护性。但是这也

引入了一定的学习复杂度。本教程从 Angular 模块入手,将 Angular 应用组

织方式和模块中资源的可见性做了详细的解释。读完本文,相信会对 Angular

有更新的认识。

继续阅读Angular 模块漫谈

理解 Subject

在上一篇博文中介绍了 Observable 和 Observer 的概念与用法。

它们是理解 Subject 的基础和前提。建议先行阅读。

1.什么是 Subject

在 RxJS 中 Subject 是混合体。它既是 Observable 又是 Observer

这意味着它既能像 Observable 一样生成数据流,被 Observer 所订阅,

也可以像 Observer 一样消费数据流。

继续阅读理解 Subject

理解 Observable 与 Observer

Observable,Observer 是 RxJS 编程中的核心,也是理解 Subject 的基础。

本文就是帮助你理解两者的区别与基本用法。

1.什么是 Observable

图片源自官方文档 —— Observable 一节。

可以看到,Observable 对象可以生成数据流,为 Observer 提供输入。

同时,Observable 对象通过可叠加多个转换(Transformation),对数据流进行转换,并且得到的仍是一个 Observable 对象。

继续阅读理解 Observable 与 Observer

Angular Resolver 教程

Photo by Kristine Weilert on Unsplash

声明

本教程是 Angular 路由快速教程的后续章节。假设您已经拥有了一些 Angular

相关的基础路由知识,了解了 Angular 路由模块常见路由组件以及路由匹配的

基本方法,尚不清楚的同学建议复习一下相关知识

Resolver —— 路由的新机制

在很多时候,我们会在组件初始化的时候(ngOnInit 消息钩子)中预先抓取数

据。但是假如数据抓取耗时较长,会导致在组件渲染的时候数据还没拿到渲染

的数据(多数情况会在控制台报错)。为了避免这种情况,就要用到 Resolver

在路由到组件之前做数据的预抓取。

同时,相比于直接在组件中注入服务,Resolver 还可以将数据抓取与其他业务

逻辑分离开来,更加利于项目的维护和扩展。这种做法也被称为遵循 “单一职责

原则(single responsibility principle )”。

Angular(6+) 中配置一个 Resolver 也非常简单。只需在路由匹配表中,为

某一条路由的 resolve 属性指定一个满足某种格式的服务,就可以轻松实现数

据的预抓取。

继续阅读Angular Resolver 教程

Material Design 为何不火

Material Design 是谷歌提出的设计指南。其设计之初,是为了统一谷歌旗下包括 Web、App 在内的各条产品线的设计风格。

Material Design 本身是介于拟物化设计扁平化设计之中的另一种设计方案,因此也兼具了两者的优点。

Material Design 社区比较繁荣,具有许多成熟的开源解决方案。

比如利用 Angular MaterialMaterial UI 等组件,开发者即使没有阅读过 Material Design 设计规范,也可以打造一个纯 Material Design 应用。

但是 Material Design 在国内却没有流行起来,几乎没有一个成熟的商业产品遵循该设计标准。

继续阅读Material Design 为何不火