Category : 教程系列

介绍 React 允许您直接使用style属性设置组件样式。对于大多数情况,使用styleprop 传递 CSS 属性的对象就足够了。 但是,对于需要更苛刻的样式功能的情况,emotion可以提供解决方案。emotion是一个灵活且高性能的 CSS-in-JS 库。它接受字符串和对象,支持默认和扩展变量,并且通过额外的 Babel 插件甚至支持内联子选择器。 在本文中,您将构建一个使用@emotion/react和@emotion/styled包进行样式设置的 React 应用程序。 先决条件 要完成本教程,您需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 注意:本文之前推荐了emotion和react-emotion包。现在几个版本之后,@emotion/react和@emotion/styled是现代的方法。 本教程已通过 Node v15.3.0、npmv7.4.0、reactv17.0.1、@emotion/reactv11.1.4 和@emotion/styledv11.0.0 验证。 步骤 1 — 设置项目 从使用create-react-app生成 React App 开始,然后安装依赖项: npx create-react-app react-emotion-example 切换到新的项目目录: cd react-emotion-example 接下来,安装@emotion/react并@emotion/styled通过npm: npm install @[email protected] @emotion/[email protected] 此时,您将拥有一个带有@emotion/react. 第 2 步 – 使用css道具 emotion提供了一个css可以接受嵌套选择器和媒体查询的prop。它可以支持一个对象或一个标记的模板文字。 App.js在代码编辑器中打开文件并修改它以将<div>s 与cssprop一起使用: 源代码/App.js ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 大多数Let’s Encrypt证书是使用 HTTP 验证颁发的,它允许在单个服务器上安装证书。但是,HTTP 验证并不总是适合颁发用于负载平衡网站的证书,您也不能使用此验证来颁发通配符证书。 DNS 验证允许使用 DNS 记录来验证证书颁发请求,而不是通过 HTTP 提供内容。这意味着可以同时为在负载均衡器后面运行的 Web 服务器集群或无法通过 Internet 直接访问的系统颁发证书。 在本教程中,您将使用Certbot 的 certbot-dns-digitalocean挂钩通过 DigitalOcean API 使用 DNS 验证颁发 Let’s Encrypt 证书。 您可以使用 certbot-dns-digitalocean 工具将 Certbot 与 DigitalOcean 的 DNS 管理 API 集成,从而允许在您请求证书时即时自动配置证书验证记录。 certbot-dns-digitalocean 的另一个主要好处是,您可以使用它为可能在负载均衡器后面运行或无法通过 HTTP 直接访问的单个服务器颁发证书。在这些情况下,您不能使用传统的 HTTP 证书验证,除非您在每台服务器上设置验证文件,这会很不方便。如果您想为无法通过 Internet 访问的服务器(例如内部系统或临时环境)颁发证书,则 certbot-dns-digitalocean 工具也很有用。 certbot-dns-digitalocean 还完全支持通配符证书,只能使用 DNS ..

Read more

介绍 Redis是一种开源的内存数据结构存储,擅长缓存。作为一个非关系型数据库,Redis 以其灵活性、性能、可扩展性和广泛的语言支持而闻名。 Redis 旨在供受信任环境中受信任的客户端使用,并且自身没有强大的安全功能。但是,Redis 确实具有一些安全功能,包括基本的未加密密码以及命令重命名和禁用。本教程提供了有关如何配置这些安全功能的说明,还介绍了一些其他设置,可以提高 CentOS 7 上独立 Redis 安装的安全性。 请注意,本指南不涉及 Redis 服务器和客户端应用程序位于不同主机或不同数据中心的情况。Redis 流量必须穿越不安全或不受信任的网络的安装将需要一组不同的配置,例如在 Redis 机器之间设置 SSL 代理或VPN。 先决条件 要学习本教程,您需要: 使用我们的 CentOS 7 初始服务器设置配置的一个 CentOS 7 Droplet 。 使用本指南安装和配置 Firewalld ,直至并包括“打开防火墙”步骤。 有了这些先决条件,我们就可以安装 Redis 并执行一些初始配置任务。 第 1 步 – 安装 Redis 在我们安装 Redis 之前,我们必须首先将Extra Packages for Enterprise Linux (EPEL) 存储库添加到服务器的软件包列表中。EPEL 是一个包含许多开源附加软件包的软件包存储库,其中大部分由 Fedora 项目维护。 我们可以使用yum以下方法安装 EPEL ..

Read more

今天我们将介绍vue-i18n国际化插件 (i18n)如何提供多种格式选项。我们还将介绍如何在没有可用于语言环境的字符串时处理回退。我们将使用Kazuya Kawaguchi编写的vue-i18n 插件,这篇文章是在上一篇文章的基础上构建的,它介绍了在 Vue.js 应用程序中使用vue-i18n进行国际化 (i18n)。 vue-i18n提供了多种格式化应用字符串的方法。如果您不喜欢默认样式,我们甚至可以定义自定义格式化程序。当我们缺少给定语言环境的字符串时,我们还可以提供有用的回退。 应用程序设置 我们首先假设您已经创建了一个简单的Vue应用程序。现在我们将使用您喜欢的方法添加vue-i18n插件: # Yarn $ yarn add vue-i18n # npm $ npm install vue-i18n # Vue CLI 3.x+ $ vue add i18n 我们将继续我们在上一篇文章中离开的地方。我将跳过<SelectLocale />那篇文章中组件的代码,因为它不会改变,但如果你从上次开始关注它,请随意包含它🐊! 主文件 import Vue from ‘vue’; import VueI18n from ‘vue-i18n’; import App from ‘./App.vue’; Vue.use(VueI18n); const messages = { en: { message: { hello: ..

Read more

本教程的早期版本由Melissa Anderson编写。 介绍 MongoDB,也称为Mongo,是许多现代 Web 应用程序中使用的开源文档数据库。默认情况下,它只允许源自安装它的同一服务器上的连接。如果要远程管理 MongoDB 或将其连接到单独的应用程序服务器,则需要对默认配置进行一些更改。 在本教程中,您将配置 MongoDB 安装以安全地允许从受信任的远程计算机进行访问。为此,您将更新防火墙规则以提供对 MongoDB 侦听连接的端口的远程计算机访问,然后更新 Mongo 的配置文件以更改其 IP 绑定设置。然后,作为最后一步,您将测试远程计算机是否能够成功连接到数据库。 先决条件 要完成本教程,您需要: 运行 CentOS 8 的服务器。该服务器应具有非 root 管理用户和配置了firewalld. 按照我们针对 CentOS 8 的初始服务器设置指南进行设置。 MongoDB 安装在您的服务器上。本教程假设您已安装MongoDB 4.4或更新版本。您可以按照我们关于如何在 CentOS 8 上安装 MongoDB 的教程来安装此版本。 用于访问 MongoDB 实例的第二台计算机。为简单起见,本教程假设这台机器是另一台 CentOS 8 服务器。就像你的 MongoDB 服务器一样,这台机器应该有一个非 root 管理用户和一个防火墙,firewalld如我们的 CentOS 8 初始服务器设置指南中所述。但是,步骤 1 和 2 描述了在数据库服务器上启用远程连接的实际过程,无论远程机器运行的是什么操作系统,它们都将起作用。 最后,虽然不需要完成本教程,但我们强烈建议您通过为数据库创建管理用户帐户并启用身份验证来保护您的 ..

Read more

Advanced Package Tool,通常称为APT,是一组工具,用于在 Debian 及其衍生操作系统(包括 Ubuntu 和 Linux Mint)上安装、更新、删除和以其他方式管理软件包。APT 通过使用存储库或保存软件包集合的特殊目录来工作。 Debian 项目维护着一个官方存储库,其中包含数千个软件包,APT 用户可以通过apt命令行程序和网络连接安装这些软件包。用户还可以从第三方存储库以及本地存储的存储库安装软件包。 有关 APT 和其他包管理实用程序的更多信息,请参阅我们的包管理基�..

Read more

介绍 在 CSS 中,可以使用多种颜色格式。常见的有十六进制(十六进制)代码、RGB(红、绿、蓝)、RGBA(红、绿、蓝、alpha)和HSL(色相、饱和度、亮度)。 在本文中,您将回顾十六进制颜色代码并探索使用 alpha 值实现透明度。 先决条件 如果你想跟随这篇文章,你需要: 需要对 CSS 有一定的了解。如果您需要复习,您可能会受益于如何使用 CSS教程系列构建网站。 支持#rrggbbaa十六进制颜色表示法的现代 Web 浏览器。 使用颜色关键字 首先,CSS 支持颜色关键字。大多数浏览器和设备可以将这些命名颜色渲染为颜色值。 大约有140种命名的颜色在CSS(如red,blue,lavender,等)。 例如,如果您希望文本具有红色,则可以使用关键字red: div { color: red; } 不同的值格式,如十六进制代码,将允许您自定义超过 140 种颜色。 理解十六进制值 您可能最习惯于使用十进制值(或以 10 为基数)进行计数: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 换句话说,一位数只有 10 个可能的值(0to 9),之后必须增加到两位数(10)。 十六进制值是基数 16 而不是基数 10: 0, 1, 2, 3, ..

Read more

介绍 Hacktoberfest 是为期一个月的开源软件庆祝活动,由 DigitalOcean 运营并向我们全球社区的所有人开放。要参与,您需要在 10 月份向公共 GitHub 存储库提交四个质量拉取请求。完成挑战后,您将获得特别奖品,包括一件独家 Hacktoberfest T 恤。 您可以在 10 月 1 日至 10 月 31 日之间的任何时间注册,我们鼓励您与其他开发人员和 Hacktoberfest 爱好者联系,参加从 9 月开始的虚拟活动和信息会议。 在本教程中,我们将向您介绍 Git(您将用于提交拉取请求的版本控制系统)和 GitHub(我们将用于跟踪您的进度的存储库托管服务)。在本教程结束时,您将准备好提交您的第一个拉取请求,并且将顺利参加 Hacktoberfest! 版本控制 在我们开始 Git 和 GitHub 之前,让我们先谈谈版本控制。当开发人员一起处理一个项目时,他们通常需要在相同的代码库上工作。在他们工作时,每个开发人员都需要了解其他开发人员所做的更改,以免重复工作或在已经完成的工作上编写代码。 版本控制系统用作代码的保存程序,它为项目分配一个版本并跟踪随着时间的推移对项目中每个文件所做的更改。通过这种方式,开发人员可以通过签入最新版本来共同处理项目,以便在处理他们的项目代码部分之前查看所做的更改。 Git 和 GitHub Git 是一种用于管理各种规模的开发人员项目的版本控制系统,由 Linux 的创建者 Linus Torvalds 于 2005 年创建,旨在帮助开发人员以快速、高效且廉价的方式贡献代码和共享代码修订版。Git 使开发人员能够编辑、共享和发布代码,促进协作和团队合作。 GitHub 是一种基于云的 git 存储库托管服务,允许开发人员获取他们在本地机器上编写的代码并与全世界共享。它提供了一种通过存储库或中央文件存储位置公开共享本地计算机上的版本跟踪项目的方法,并且根据项目的可用性(它可以是公共或私有存储库),其他开发人员可以将项目下载到编辑代码、提供见解等。 要开始使用 GitHub,您可以在GitHub ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Kubernetes及其支持的微服务架构可以创建非常高效且可扩展的系统。但是当这些微服务之一出现性能问题时就会出现问题。通常,我们首先注意到面向客户的服务的响应时间越来越长。问题可能出在其中一项后端服务上,也可能出在超出其最佳容量的数据库。为了发现问题的根源,我们需要实现分布式跟踪。 Jaeger 是分布式跟踪解决方案,毕业于云原生计算基金会孵化项目。它具有用于可视化跟踪的令人愉悦的 UI、用于收集跟踪的Jaeger sidecar以及其他几个组件。像 Jaeger 这样的分布式跟踪系统让我们可以跟踪每个客户生成事件的生命周期,并查看每个服务如何处理该事件。 在本教程中,我们将一个非常小的分布式应用程序部署到 Kubernetes 集群,并在我们的代码中使用睡眠函数模拟性能滞后。为了找到这个问题的根本原因并跟踪每个事件,我们将使用Jaeger。启用跟踪后,我们将看到它在观察服务行为和查明问题方面的有效性。 先决条件 在开始之前,您将需要以下工具和帐户: Kubernetes 1.15+ 集群,将您的连接配置设置为kubectl默认值。要在 DigitalOcean 上创建 Kubernetes 集群,请阅读我们的Kubernetes 快速入门。要连接到集群,请阅读如何连接到 DigitalOcean Kubernetes 集群。 安装了 Docker。按照我们关于如何安装和使用 Docker 的教程获取说明。Docker 的网站提供了其他操作系统(如 macOS 和 Windows)的安装说明。 Docker Hub 上用于存储 Docker 映像的帐户。 kubectl安装在本地机器上并配置为连接到集群的命令行工具。您可以kubectl 在官方文档中阅读有关安装的更多信息,或者按照本教程开始使用 Kubernetes:备忘kubectl单。 curl安装在本地计算机上的命令行实用程序。您可以curl使用操作系统内置的包管理器进行安装。 步骤 1 — 构建示例应用程序 为了测试 Jaeger 的跟踪能力,我们将构建和部署一个示例应用程序sammy-jaeger,它使用两种服务:一种用于前端,一种用于后端。我们将使用Python和Flask 微框架构建。 我们的应用程序将是一个命中计数器,每次调用前端时其值都会增加。为了模拟性能问题,我们将编写一个随机睡眠函数,该函数在前端向GET后端发送请求时执行。在这一步中,我们将构建和部署该应用程序。在以下步骤中,我们会将应用程序部署到 Kubernetes,安装 ..

Read more

介绍 双方setTimeout()并setInterval()都内置在设定的时间上的文档对象模型的全局对象安排任务的方法。setTimeout()在指定的延迟后调用传入的函数一次,而setInterval()在指定的时间连续调用一个。由于 JavaScript 是一种单线程语言,这两种方法都允许您的代码异步运行。 在本文中,您将了解如何在您的 JavaScript 项目中实现setTimeout()和setInterval()。 申请 setTimeout() 该setTimeout()方法接受两个参数:回调函数和以毫秒为单位的延迟,并调用该函数一次。 在您的index.js文件中,实现一个setTimeout()方法并传入一个匿名函数作为第一个参数,并传入一个以毫秒为单位的数字作为第二个参数: 索引.js setTimeout(() => { console.log(‘Hello World!’); }, 1000); 延迟1000毫秒(相当于一秒)后,控制台将打印出字符串Hello World!。 您还可以全局定义一个函数并将其setTimeout()作为第一个参数传入。 在您的index.js文件中,在全局空间中定义一个函数并在setTimeout()方法内传入函数标签: 索引.js function greeting() { console.log(‘Hello World!’); } setTimeout(greeting, 1000); 延迟一秒钟后,控制台将注销字符串Hello World!。 注意:您不应调用传入的函数setTimeout()。相反,插入函数标签作为第一个参数。 该setTimeout()方法可以采用额外的可选参数,并在指定的延迟后将这些参数传递给回调函数。在您的index.js文件中,将其他参数应用到您的setTimeout()方法中: 索引.js function animal(animalName, punctuation = ‘.’) { const name = animalName.charAt(0).toUpperCase() + animalName.slice(1); console.log(`${name}`${punctuation}); } setTimeout(animal, 2500, ‘shark’, ‘!’); ..

Read more