标签:

前端

本文将介绍 TypeScript 的类型基础,以及 TypeScript 是如何管理类型的。本文将包含类型断言、类型接口、类型联合、类型守卫、结构类型以及其它你需要了解的相关概念。 类型接口 Type Inference 在 TypeScript 中,使用一个值初始化一个变量,不需要为这个变量提供数据类型。TypeScript 编译器会通过赋给的值的类型 type 和形状 shape 来推断(in ...

0 个评论 97 次阅读

Promise 是 JavaScript 语言引入的新特性之一。前面的一篇文章我们已经介绍过 JavaScript 中的 promise 和 async/await 的语法。这篇文章将重点聚焦于 TypeScript 语言中的 promise 和 async/await。 promise 是Promise类的实例。创建一个 promise 对象,我们需要使用new Promise(executor ...

0 个评论 210 次阅读

利用 promise,我们可以以一种可控的方式编写异步代码。利用基于 promise 的 async/await 语法,我们可以以一种同步的形式编写异步代码,从而为我们节省大量时间,代码也更加可读。 JavaScript 在单一线程执行代码,这使得 JavaScript 经常阻塞。下面我们看一个简单的例子,在这个例子中,我们会顺序调用三个函数: 在上面的代码中,每个函数调用和console.log ...

0 个评论 208 次阅读

前面我们已经完成了一个简单的演示项目,大致了解了 Angular 的开发流程。现在,我们要回过头来,看看 Angular 程序是如何从代码显示到浏览器中的。 引导就是把 Angular 程序初始化并且加载到浏览器显示的过程。 总体来说,Angular 程序的引导过程大致分为一下几个步骤: 下面我们一步一步看,整个引导过程是怎样的。 首先,index.html 被浏览器下载到本地并且开始解析。经过编 ...

0 个评论 206 次阅读

前面我们介绍了有关 Angular 路由的基本内容。现在,我们就可以完成我们所需要的部分了: 这应该是我们之前的需求列表中最后一部分了。 为了添加路由,首先,我们应该创建一个路由模块。 这里,我们将空路由''映射到TodoListComponent,同时添加了一个:status路由,也映射到这一组件。之所以这样设计,是因为按照需求里面的要求,路由只是为了切换待办事项的列表显示。那么,这意味着路由应 ...

0 个评论 205 次阅读

最初,每个网页的都是独立的 HTML 页面。当我们打开一个网页时,浏览器需要向服务器请求页面,并把接收到的 HTML 文档渲染显示出来。当你点击一个链接,跳转到另外的页面时,浏览器需要向服务器请求新的页面,然后再渲染显示出来。 不过现在这种传统的显示已经不那么常见了。越来越多的网站使用 JavaScript 去动态加载页面内容。当你在站点内部点击按钮导航时,并不会重新获取整个页面,而是仅仅去请求内 ...

0 个评论 202 次阅读

上一章我们实现了 Mark all as completed 选择框的相关操作。接下来,我们要实现的是另外一个需求: 很明显,计数器的值应该根据todoService.#todoList数组计算而来。那么,我们就在TodoService里面增加一个属性: 这里,我们使用了 TypeScript 的 getter 函数,返回#todoList中所有completed属性为false的待办事项的个数。 ...

0 个评论 198 次阅读

上一章我们完成了待办事项的增加、删除、修改、完成等操作。在开始下面的需求之前,我们要解决一个之前遗留的 bug。 bug 的触发方式是,首先添加若干待办事项,然后利用删除按钮全部删除,此时,不能再添加新的待办事项。输入之后,列表始终为空。 下面我们先看一下增加待办事项的操作: 我们看到,每次新增待办事项,其实是向this.todoService.todoList数组追加元素。这样没有问题,而且符合 ...

0 个评论 200 次阅读

上一章我们实现了待办事项 app 的基本功能,也就是回车添加新的待办。现在,我们要继续完善这个应用。 我们要求,在添加新的待办之后,输入框应该清空。我们当然可以直接通过input的引用,将其value属性设置为空来实现。这在 jQuery 时代是标准做法。但 Angular 应该是数据驱动的,更好的做法是,将input的值绑定到一个变量,通过对这个变量的操作,影响到input的行为。 下面我们在H ...

0 个评论 200 次阅读

上一章我们简单地把 TodoMVC 的组件进行了拆分。 TodoMVC 很明显是一个以数据为中心的应用:整个系统围绕着待办列表,界面上几乎所有操作都是针对待办列表进行一系列操作。因此,我们可以使用数组保存这个待办列表,将页面显示绑定到列表中的数据,通过修改数据实现页面显示的修改。这个数组应该是全局可用的,方便我们对其进行管理。虽然 JavaScript 提供了全局变量供我们使用,但本着能不用就不用 ...

0 个评论 198 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2