Angular Async Pipe详解

Async Pipe可以对 Angular 应用程序的更改检测策略产生巨大影响。如果到目前为止您还感到困惑,请详解读完全文。我们一起来了解一下吧!

在 Angular 中,Async Pipe本质上是执行以下三个任务的管道:

  • 它订阅一个observable或一个Promise并返回最后发出的值。
  • 每当发出新值时,它都会标记组件为需要要检查的。这意味着Angular将在下一个周期中为该组件运行Change Detector。
  • 当组件被销毁时,它会取消订阅可观察的内容。

此外,作为最佳实践,建议尝试使用 onPush 更改检测策略上的组件和异步管道来订阅可观察对象。

如果您是Angular的初学者,也许上面对异步管道的解释让人不知所措。因此,在本文中,我们将尝试使用代码示例逐步理解异步管道。只需创建一个新的Angular 项目并继续操作即可;在文章的最后,您应该对异步管道有一些深刻的了解。

阅读更多

Angular整合strapi CMS

1. 前言

对于我们这些开发人员来说,启动一个新的web项目可能是一项乏味的工作。一些普通的增删改查都要自己亲自动手去写,那效率着实是大打折扣的。

一些技术选型工作要一次一次地被重复考虑.

  • 前端应该使用什么技术?
  • 我应该在后端使用什么技术?
  • 什么数据库是最好的?

因为现在所有的Javascript技术,如React、Angular和Vue,在构建Web应用程序时都非常流行,所以我们可以很快得到第一个问题的答案。
但是后端呢?我应该使用NodeJS还是.NET Core?
使用关系数据库还是非关系数据库更好?
后端解决方案Strapi已经找到了所有这些问题的答案。

在本文中,我们将使用Strapi和Angular构建一个简单的web应用程序。

阅读更多

strapi的安装和使用

strapi一款基于Node.js开发的headless, 接口优先(API-first)的内容管理系统.

Strapi 应用程序可以本地安装在计算机上,也可以安装在远程服务器上。以下安装指南提供了有关如何在本地计算机上安装和创建新Strapi项目的分步说明。

Strapi CLI(命令行界面)安装脚本是让 Strapi 在本地运行的最快方法, 也是官方推荐的安装方式。

阅读更多

strapi 项目结构介绍

1. 项目结构

如果 Strapi 项目是使用starter CLI创建的,则其结构包括frontend和backend文件夹,其中backend文件夹具有默认结构。

阅读更多

如何在Strapi v4中创建Slug系统

在为客户或您自己构建网站时,您通常希望通过 URL 中的人类可读的 slug 来访问您的公共内容。这将有助于搜索引擎优化 (SEO),并且更容易让用户理解。值得庆幸的是,借助Strapi,您可以轻松地以这种方式访问​​您的内容。

阅读更多

计算机发展极简编年史

1. 前言

我为什么要写这篇文章? 计算机发展的速度太快了, 已经进入了蓬勃发展期. 但是依然看不到它的尽头, 看不清它的终极形态. 很多人都在追逐新的技术, 但是很少有人拿起笔系统的记录它的过去. 很多年以后当我们要追寻一项技术的来龙去脉的时候, 可能连它的”尸身”都找不到了.

比如说软盘驱动器(floppy disk driver)现在谁手上还保存有一张1.44MB的3.5英寸软盘, 谁电脑上还会装有软驱呢, 这在当时可是一项创新性的技术, 是便携式存储的鼻祖, 是一代人的回忆. 一张小小的软盘能装下一整套DOS操作系统, 能装下一个夏天的劳动成果. 但是现在当我想介绍存储技术的演进过程时, 不仅找不到一部软驱, 一张软盘, 就连一张合适的图片的很难找到了. 同样的命运的还有寻呼机机, 这个承载着很多人青春记忆的通信设备, 可能剩下脑海中的BiBi声了. 同样的命运的还有功能机, 早已过了手机换脸盆的淘汰期, 曾经层出不穷的款式, 不知道现在还有几款健在. 更不用说他们所依赖的生态系统, 比如基站设备, 外设装置.

站在当下这个似乎还能朦朦胧胧看到过去的时间节点, 在不费太多力气的情况下, 将不太遥远的过去记录下来, 省得后来人花费昂贵的代价去考古, 也不失为一件幸事.

为什么以编年体的形式记录这段历史? 其实这是我的某项计划的一部分, 还处于材料收集阶段, 收集计算机发展史也是我副业中的副业, 没有太多时间深入研究和系统性地整理, 只能以最简单的方式快速呈现内容, 不至于让整个计划胎死腹中(我已经有很多文章由于计划过于宏大而胎死腹中的先例了). 编年体是快速理清脉络, 呈现材料的最好方式. 它不需要花太多时间去整理去构思, 而且呈现效果也非常清晰. 另外我也非常喜欢将软件工程中的一些概念应用到写作中, 那就是小步快跑, 快速迭代; 再者就是重构. 有了足够的材料后, 我相信通过不断地重构, 不断地迭代, 能将其打造为我心中理想的样子. 所以这篇文章会是一篇不断完善的文章, 请有兴趣的朋友关注鹏叔的技术博客获取最新内容. 另外如何您有兴趣资助鹏叔的计划, 原文末尾有打赏功能, 请点一点, 在此表示感谢!

阅读更多

Chart.js教程

1. chart.js 介绍

Chart.js是一个流行的由社区维护的开源数据可视化框架。它使我们能够生成响应式条形图、饼图、线图、甜甜圈图、散点图等。我们所要做的就是简单地指出你想在页面的什么地方显示图表,你想绘制什么样的图表,然后向 Chart.js 提供数据、标签和其他设置。在这之后,这个库就完成了所有繁重的工作。

阅读更多

如何在Angular应用中使用Ng2-charts

1. 前言

图表帮助我们以易于理解和交互的方式可视化大量数据。

在 Angular 中,我们有各种图表库来创建图表。

在本文中,我们将使用 Ng2-Charts 在 Angular 中开发出色的图表。

在本文中我们将会讲述

  • ng2-charts 介绍
  • 在 Angular 中安装 ng2-charts 的两种不同方法。
  • 创建条形图
  • 创建折线图
阅读更多

Angular图表库介绍

1. 前言

如今,数据分析是任何业务应用程序的重要组成部分。这有助于企业做出重要决策。以易于理解和交互的方式表示大量数据非常重要。
图表对于美观、易于理解和交互式的数据可视化非常有用。

JavaScript 中有不同的开源和付费图表库,可以实现漂亮的数据表示。

在本文中,我们将研究几款美观的, 易于交互的 Angular 图表库。

首先,我们将看到开源 Angular 图表库,稍后我们将研究其他付费 Angular 图表库.

阅读更多

将ngx-datatable替换为Angular material table

1. 前言

从 Angular 1.x 到 Angular 13 一直是用的 angular-data-table(for angularjs 1.x)和它的姊妹项目 ngx-datatable(for angular 2+), 但是最近需要将 Angular 项目从 Angular 14 升级到 Angular 16 的过程中发现了一些兼容性问题, 另外 ngx-datatable 也不支持 dark mode. 再次关注 ngx-datatable 以及网上的评论都有同感, ngx-datatable 的更新速度严重放缓了, 有些跟不上 Angular 更新的节奏了. 参考 reddit 上的一篇帖子Any better alternatives to ngx-datatable?, 也谈到了 ngx-datatable 更新放缓.

于是考虑将 ngx-datatable 组件替换掉, 这里有一些付费的项目, 在功能上可以完全替换, 比如ag-grid, Ignite UI for Angular Data Grid, Syncfusion Angular UI Components - Data Grid等等.

最后考察了 angular material table 在功能上完全服务我们的要求, sorting, pagination, server side pagination 之类的功能都有. 另外项目刚好使用的是 Material Design 设计风格, 那些付费方案的高级功能也用不上, 还要花时间学习, 另外考虑到 bundle 文件的大小, 最后坚定的选择了 Angular material table. 于是才有了这篇文章

阅读更多

Windows下搭建WSL Linux开发环境

1. 前言

WSL(Windows Subsyetem for Linux,适用于 Linux 的 Windows 子系统),是 Microsoft 公司于 2016 年在 Windows 10 平台发布的一项新功能,其使得用户可以在 Windows 操作系统上运行 ELF 格式的 Linux 可执行文件。

WSL 目前已发布两代产品:WSL 1 和 WSL 2。WSL 1 实现了 Linux 兼容层,将 Linux 系统调用转换为 Windows NT 系统调用;而 WSL 2 则利用 Windows 的 Hyper-V 功能,通过虚拟化技术直接运行 Linux 虚拟机,更接近原生 Linux 操作系统体验。

阅读更多

Windows上安装nvm和nodejs

1. 前言

Node Version Manager (NVM) 是一种广泛使用的工具,允许开发人员在单台计算机上管理 Node.js 的多个版本。它的重要性怎么强调都不为过,因为 Nodejs 应用程序有时可能是依赖特定版本运行,然而不同的项目可能需要不同的 Nodejs 版本。NVM 提供的灵活性确保了不同项目同时运行在同一台机的开发过程的顺利进行,允许开发人员在 Node 版本之间无缝切换。在 windows 上,有多种安装 NVM 的方法,但最流行、最有效的方法之一是使用 Chocolatey,这是微软出品的包管理器。

本指南将引导您完成使用讲述在 windows 上安装 NVM 的详细步骤,让您轻松设置灵活的 Node.js 开发环境。

阅读更多

Windows开发环境配置

1. 安装Chocolatey

管理员身份打开powershell.exe,执行以下代码

1
2
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

2. 安装nodejs

首先安装nvm

1
2
3

choco install nvm

1
nvm install 17       ## 安装 Node.js 17.X 版本

安装后,可以验证安装的内容:

1
nvm ls 

如果您的系统上安装了多个版本,您可以随时将任何版本设置为默认版本。要将节点 18.X 设置为默认版本,只需使用:

1
2
3

nvm use 17

3. 安装rust

Rust环境如果已经安装过, 可以忽略此步骤. 如果未安装或者需要升级, 请参考的博客在各种操作系统上安装和配置Rust - 鹏叔的技术博客

MacOS上安装nvm

1. 前言

Node Version Manager (NVM) 是一种广泛使用的工具,允许开发人员在单台计算机上管理 Node.js 的多个版本。它的重要性怎么强调都不为过,因为 Nodejs 应用程序有时可能是依赖特定版本运行,然而不同的项目可能需要不同的 Nodejs 版本。NVM 提供的灵活性确保了不同项目同时运行在同一台机的开发过程的顺利进行,允许开发人员在 Node 版本之间无缝切换。在 macOS 上,有多种安装 NVM 的方法,但最流行、最有效的方法之一是使用 Homebrew,这是 macOS 著名的包管理器。

本指南将引导您完成使用 Homebrew 在 macOS 上安装 NVM 的详细步骤,让您轻松设置灵活的 Node.js 开发环境。

阅读更多