介绍 Resize Observer是一个新的 JavaScript API,它与Intersection Observer API等其他观察者 API 非常相似。它允许在元素大小发生变化时通知元素。 元素大小改变的最常见原因是当视口被调整大小或设备的方向在纵向和横向之间改变时。到目前为止,我们不得不依赖全局window.resize事件来监听调整大小事件并检查某些元素是否改变了大小。由于大量的触发事件,这很容易导致性能问题。换句话说,使用window.resize通常是浪费的,因为它会通知我们每个视口大小的变化,而不仅仅是当元素的大小实际发生变化时。 Resize Observer API 的另一个用例是窗口的 resize 事件无法帮助我们处理:当动态添加或从 DOM 中删除元素时,会影响父元素的大小。这在现代单页应用程序中越来越频繁。 在本教程中,您将了解 React Observer 的基本用法。您还将在自己的前端代码中实现 React Observer 并测试浏览器支持。 先决条件 要成功完成本教程,您需要具备以下条件: 对 HTML 的理解。该如何建立与HTML系列网站是一个伟大的地方开始。 CSS的基础知识。该如何建立一个网站使用CSS系列可以帮助你实现这一目标。 了解 JavaScriptfor和forEach循环。要了解有关循环的更多信息,请访问这篇名为For Loops、For…Of Loops 和 For…In Loops in JavaScript 的文章。该文章提供了如何进行彻底的解释forEach循环工作。 了解 JavaScript 中的 DOM 操作。如果您想了解有关此主题的更多信息,请访问了解 DOM — 文档对象模型系列。 步骤 1 — 了解 Resize Observe ..
Category : 教程系列
介绍 命令行参数是一种为命令提供额外输入的方法。您可以使用命令行参数为 Node.js 脚本增加灵活性和自定义。 在本文中,您将了解参数向量、检测参数标志、处理多个参数和值以及使用commander包。 先决条件 要完成本教程,您需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 本教程已通过 Node v16.10.0、npmv7.12.2 和commanderv7.2.0 验证。 使用参数向量 Node.js 支持传递参数的列表,称为参数向量。参数向量是process.argvNode.js 脚本中可用的数组。 该数组包含传递给脚本的所有内容,包括 Node.js 可执行文件以及脚本的路径和文件名。 如果您要运行以下命令: node example.js -a -b -c 您的参数向量将包含五个项目: [ ‘/usr/bin/node’, ‘/path/to/example.js’, ‘-a’, ‘-b’, ‘-c’ ] 至少,不带任何参数运行的脚本仍将包含数组中的两个项目,node可执行文件和正在运行的脚本文件。 通常,参数向量与参数计数( argc)配对,它告诉您传入了多少个参数。 Node.js 缺少这个特定变量,但我们总是可以获取length参数向量数组的 : 例子.js if (process.argv.length === 2) { console.error(‘Expected at least one argument!’); process.exit(1); ..
介绍 虽然许多用户需要像 MariaDB 这样的数据库管理系统的功能,但他们可能觉得仅仅通过 MariaDB 提示与系统交互并不舒服。 phpMyAdmin 的创建是为了让用户可以通过 Web 界面与 MariaDB 进行交互。在本指南中,我们将讨论如何安装和保护 phpMyAdmin,以便您可以安全地使用它来管理 Debian 10 系统上的数据库。 先决条件 在开始使用本指南之前,您需要具备以下条件: 访问 Debian 10 服务器。此服务器应具有具有sudo特权的非 root 用户和配置为ufw. 要进行设置,请按照我们的 Debian 10 初始服务器设置指南进行操作。 灯管(大号inux下,一个帕什,中号ariaDB和P HP)堆叠安装您的Debian 10的服务器上。按照我们在 Debian 10上安装 LAMP 堆栈的指南进行设置。 注意: MariaDB是 MySQL 的一个社区开发的分支,虽然这两个程序密切相关,但它们并不是完全可以互换的。虽然 phpMyAdmin 是专门为管理 MySQL 数据库而设计的,并在各种对话框中引用 MySQL,但请放心,您安装的 MariaDB 将与 phpMyAdmin 一起正常工作。 最后,在使用像 phpMyAdmin 这样的软件时还有一些重要的安全考虑,因为它: 直接与您的 MariaDB 安装通信 使用 ..
该clearfix现在黑客已经存在了很长一段时间,和修补程序可以与浮动比它们更大的容器发生的元素的一个问题。 下面是问题的一个例子: .box { padding: 1rem; background: rgba(255, 105, 180, 0.1); border: 3px dashed rgba(255, 105, 180, 0.1); border-radius: 5px; } .box img { float: left; } <div class=”box”> <img class=”sammy” src=”Sammy_punk.svg” width=”200″ height=”128″ alt=”Sammy!”> Lorem ipsum dolor sit amet, consectetur adipiscing elit… </div> Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英… 旧的清除修复黑客 旧的修复方法是overflow: auto在容器上设置,因此通常会在包含浮动元素的元素上创建和使用这样的类: .clearfix ..
虚拟机,通常也称为VM,是运行在虚拟化软件或管理程序之上的访客系统。VirtualBox、VMWare 和 QEMU 是流行工具的示例,它们能够模拟网络、磁盘和其他硬件资源以构建充当物理计算机的虚拟化环境。这些环境彼此隔离,并与安装虚拟化软件的主机隔离,每个环境都运行不同的操作系统。 虚拟机主要用于云计算,以在较小规模的虚拟专用服务器之间分配硬件资源。与容器相比,虚拟机需要更多资源,但这使它们能够无缝模拟整个服务器和桌面。 虚拟机的另一个重要用例是在开发环境的上下文中。借助虚拟机,开发人员能够在独立于基本操作系统的隔离、预配置环境中处理他们的应�..
介绍 在本文中,您将探索React Hooks,这是 React 最新版本 16.8 中的一项新功能。React Hooks 是函数,作为状态和生命周期方法的模块化替代品。React Hooks 允许您构建基于函数的组件,而不是类组件。 先决条件 要完成本教程,需要了解 React。要了解有关 React 的更多信息,请查看如何在 React系列中编码。 分析useState()方法 在类组件中,您可以将 React 导入index.js文件并创建类对象的实例JustAnotherCounter。您将添加一个状态和一个函数来更新属性count: 索引.js import React, { Component } from ‘react’; class ScoreCounter extends Component { state = { count: 0 }; setCount = () => { this.setState({ count: this.state.count + 1 }); }; render() { return ..
本教程的先前版本由Brian Boucheron编写 介绍 MariaDB是一个开源关系数据库管理系统,通常用作 MySQL 的替代品,作为流行的LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的数据库部分。它旨在成为 MySQL 的替代品。 本快速入门教程介绍了如何在 Ubuntu 20.04 服务器上安装 MariaDB 并使用安全的初始配置对其进行设置。它还将介绍如何为密码访问设置额外的管理帐户。 先决条件 要学习本教程,您需要一台运行 Ubuntu 20.04 的服务器。此服务器应具有非 root 管理用户和使用 UFW 配置的防火墙。按照我们针对 Ubuntu 20.04 的初始服务器设置指南进行设置。 第 1 步 – 安装 MariaDB 在安装 MariaDB 之前,使用以下命令更新服务器上的包索引apt: sudo apt update 然后安装包: sudo apt install mariadb-server 从默认存储库安装时,MariaDB 将自动开始运行。要对此进行测试,请检查其状态。 sudo systemctl status mariadb 您将收到类似于以下内容的输出: Output● mariadb.service – MariaDB 10.3.22 ..
介绍 为网站配置服务器时,您可能需要实施一些常见的条件操作。例如,也许某些文件应该被用户的浏览器缓存的时间比其他文件长,或者网站的某些部分应该只允许通过安全连接(例如需要用户密码的任何内容),而网站的其他部分则不吨。 另一个简单、常见的例子是确保当一个新网页代替旧网页发布时,所有旧地址都将重定向到正确的位置。这很有用,因为这意味着旧链接和书签不会停止工作,并且还保留了 Google 的缓存。 Nginx 的 map 模块允许您在 Nginx 的配置文件中创建变量,其值是有条件的——也就是说,它们依赖于其他变量的值。在本指南中,我们将了解如何使用 Nginx 的地图模块实现两个示例:如何设置从旧网站 URL 到新网站的重定向列表以及如何创建国家/地区许可名单以控制您网站的流量。 先决条件 要学习本教程,您需要: 使用此初始服务器设置教程设置的一台 Ubuntu 16.04 服务器,包括 sudo 非 root 用户。 按照如何在 Ubuntu 16.04 上安装 Nginx 教程,在您的服务器上安装 Nginx。 步骤 1 — 创建和测试示例网页 首先,我们将创建一个代表新发布网站的测试文件。我们将使用此文件来测试我们的配置。 让我们index.html在默认的 Nginx 网站目录中创建一个简单的页面。这个文件只有纯文本描述里面的内容:Home。 sudo sh -c ‘echo “Home” > /var/www/html/index.html’ 有了这个测试文件,接下来我们将检查它是否正确地使用curl. 我们不需要index.html为此命令指定,因为如果没有提供确切的文件名,则默认情况下会提供该文件。 curl http://localhost/ 作为回应,您应该看到一个单词Home,如下所示: Nginx 响应 Home ..
介绍 计算机科学领域有许多数理逻辑基础。如果您熟悉逻辑,就会知道它涉及真值表、布尔代数和比较以确定相等或不同。 JavaScript 编程语言使用运算符来评估有助于在编程中控制流的语句。 在本教程中,我们将介绍逻辑运算符。这些通常与条件语句中使用,以及if,else和else if关键字,以及三元运算符。如果您有兴趣首先了解有关条件语句的更多信息,请参阅如何在 JavaScript 中编写条件语句。 比较运算符 在 JavaScript 中,您可以使用许多比较运算符来评估给定的值是不同还是相等,以及某个值是否大于或小于另一个值。通常,这些运算符与变量中的存储值一起使用。 比较运算符都返回一个布尔(逻辑)值的true或false。 下表总结了 JavaScript 中可用的比较运算符。 操作员 这是什么意思 == 等于 != 不等于 === 严格等于没有类型转换 ! == 严格不等于没有类型转换 > 比…更棒 >= 大于或等于 < 少于 <= 小于或等于 让我们详细介绍每个运算符。 平等 相等运算符测量运算符两侧的值是否相等。 让我们考虑以下几点: let x = 3; x == 3; 因为3等价于3,接收到的输出将是 的布尔值true。 Outputtrue 如果我们改为测试是否x等于另一个整数,我们将收到表明该语句被验证为假的输出。 let x = 3; x ..
作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 TypeScript是JavaScript语言的扩展,它使用 JavaScript 的运行时和编译时类型检查器。这种组合允许开发人员使用完整的 JavaScript 生态系统和语言功能,同时还可以在其上添加可选的静态类型检查、枚举、类和接口。 尽管TypeScript 中预制的基本类型将涵盖许多用例,但基于这些基本类型创建您自己的自定义类型将允许您确保类型检查器验证特定于您的项目的数据结构。这将减少项目中出现错误的机会,同时还允许更好地记录整个代码中使用的数据结构。 本教程将向您展示如何在 TypeScript 中使用自定义类型,如何将这些类型与联合和交集组合在一起,以及如何使用实用程序类型为自定义类型增加灵活性。它将引导您完成不同的代码示例,您可以在自己的 TypeScript 环境或TypeScript Playground(一个允许您直接在浏览器中编写 TypeScript 的在线环境)中遵循这些示例。 先决条件 要学习本教程,您需要: 您可以在其中执行 TypeScript 程序以跟随示例进行操作的环境。要在本地计算机上进行设置,您需要以下内容: 这两个节点和NPM(或丝安装才能运行的开发环境,手柄的打字稿相关的软件包)。本教程使用 Node.js 版本 14.3.0 和 npm 版本 6.14.5 进行了测试。要在 macOS 或 Ubuntu 18.04 上安装,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。如果您使用的是适用于 Linux的Windows 子系统 (WSL),这也适用。 此外,您将需要tsc在您的机器上安装TypeScript 编译器 ..