我们在实现前端页面时,经常会遇到使用 http 加载远程数据的情况,为了友好的用户体验,一般在请求 http 远程数据时,都会用一个加载动画来减轻用户的等待焦虑。
Angular使用state实现返回上一页功能
返回上一页可能是 web 应用中最常用的一个功能,实现方式也有很多种。
一般在设计返回上一页功能时,都要记住上一页的状态。
比如从一个列表页点击到详情页时,列表页可能有一些状态,比如当前的搜索条件,或者是列表的分页等状态,再从详情页点击“返回上一页”时,除了要跳转到列表页,还要记住之前的搜索条件或分页等状态。
Angular集成immutable-js以提高性能
Angular 有两种变更检测策略:Default
和OnPush
。在一些中小型项目中,直接使用默认的Default
策略即可,但如果在一些大型项目中,数据量比较大,而且变动比较频繁,一般会使用OnPush
策略来优化性能。
OnPush
策略提供了跳过对这个组件和它的所有子组件的不必要检查的可能性,以提高性能。
其中有一项很重要的就是输入的引用发生了变化。
JavaScript 中的所有东西都是通过引用传递的,但所有的基元(基础类型数据)都是不可改变的,它们的字面表述都指向同一个基元实例/引用。修改对象属性或数组条目不会创建一个新的引用,因此不会触发 OnPush 组件的变更检测。要触发变更检测器,你需要传递一个新的对象或数组引用来代替。
这就要求输入使用不可变
对象,每次对象属性发生变化都产生一个新对象引用,以便能够触发变更检测。
深入理解Angular变更检测(翻译)
翻译自《The Last Guide For Angular Change Detection You’ll Ever Need》
Angular 的 Change Detection 是该框架的一个核心机制,但(至少从我的经验来看)它非常难以理解。不幸的是,在官方网站上没有关于这个主题的官方指南。
在这篇博文中,我将为你提供所有你需要了解的关于变更检测的必要信息。我将通过使用我为这篇博文建立的一个演示项目来解释其机制。
解决HTTPS应用访问HTTP图片被禁止的问题
Web 前端实现复制到剪切板/剪贴板/粘贴板
Angular拦截器的一些妙用
Angular 的 HttpClient 实现了拦截器机制,可以对请求进行拦截与修改,过滤等操作。
基于这种特性,我们可以很方便的将有关 http 请求的一些逻辑抽离出来,对代码进行解藕。
前缀树结构做路由匹配
不管是做前端还是后端,都可能会遇到路由匹配的需求。如果是静态路由,可以直接用哈希表进行存储,查找时直接从哈希表查即可,速度非常快,复杂度 O(1)。
但在实际场景中,更多的是动态路由的匹配,动态路由直接用哈希表就有点力不从心了。动态路由可以用前缀树这个结构。
打造一款简洁高效且比较有颜的终端
作为程序员,经常要和终端打交道。但是默认的终端bash,不仅丑,而且难用至极。
这里推荐使用zsh,被誉为终极shell,但刚安装的zsh默认状态下,也是丑与难用,需要配置一下,才能打造一款舒适的终端shell。
本文就使用zsh来配置一款简洁高效且颜值还不错的终端。
链表反转.md
链表是一个很简单的结构,虽然简单,但对于链表节点的操作,以及对于边界细节的处理,是面试中经常问到的。而且由于链表的定义符合递归定义,因此有时候考察递归思想时,也用链表来考察。