翻译自《The Last Guide For Angular Change Detection You’ll Ever Need》
Angular 的 Change Detection 是该框架的一个核心机制,但(至少从我的经验来看)它非常难以理解。不幸的是,在官方网站上没有关于这个主题的官方指南。
在这篇博文中,我将为你提供所有你需要了解的关于变更检测的必要信息。我将通过使用我为这篇博文建立的一个演示项目来解释其机制。
coolcao的code点滴
翻译自《The Last Guide For Angular Change Detection You’ll Ever Need》
Angular 的 Change Detection 是该框架的一个核心机制,但(至少从我的经验来看)它非常难以理解。不幸的是,在官方网站上没有关于这个主题的官方指南。
在这篇博文中,我将为你提供所有你需要了解的关于变更检测的必要信息。我将通过使用我为这篇博文建立的一个演示项目来解释其机制。
Angular 的 HttpClient 实现了拦截器机制,可以对请求进行拦截与修改,过滤等操作。
基于这种特性,我们可以很方便的将有关 http 请求的一些逻辑抽离出来,对代码进行解藕。
不管是做前端还是后端,都可能会遇到路由匹配的需求。如果是静态路由,可以直接用哈希表进行存储,查找时直接从哈希表查即可,速度非常快,复杂度 O(1)。
但在实际场景中,更多的是动态路由的匹配,动态路由直接用哈希表就有点力不从心了。动态路由可以用前缀树这个结构。
作为程序员,经常要和终端打交道。但是默认的终端bash,不仅丑,而且难用至极。
这里推荐使用zsh,被誉为终极shell,但刚安装的zsh默认状态下,也是丑与难用,需要配置一下,才能打造一款舒适的终端shell。
本文就使用zsh来配置一款简洁高效且颜值还不错的终端。
链表是一个很简单的结构,虽然简单,但对于链表节点的操作,以及对于边界细节的处理,是面试中经常问到的。而且由于链表的定义符合递归定义,因此有时候考察递归思想时,也用链表来考察。
在虚拟机VirtualBox中安装UbuntuServer进行实验,默认使用NAT网络模式,但是宿主机无法联通虚拟机,因此将NAT模式改为桥接模式。
其实arch的安装并不复杂,如果你使用图形化安装工具安装过其他linux发行版,那么你应该知道安装时会进行一系列的设置,设置分区,设置用户名等等。
arch的安装没有图形化的工具,因此需要使用命令行来设置。其设置的内容也和图形化安装并无任何差异。
下面整理了一下安装一个arch所基本的命令。
一个很简单的问题,给定一个字符串txt和一个模式串pat,写一个函数search来输出字符串txt中所有和pat相等的子串。
例如,给定txt=”this is a test text”, pat=”text”,返回 [10]
这个问题非常简单,我们只需要暴力穷举所有txt中所有长度等于len(pat)的子串,并判断其是否和pat相等即可。相等就返回其起始索引。
在判断子串是否和pat相等时,我们需要逐位去比较。这样,这个问题的复杂度就是 O(mn)。这种算法我们称为朴素字符串匹配算法。
很显然,这样的算法效率并不高。