2024年8月26日

在 Ionic 2 中使用网格系统

Ionic 带有内置网格组件系统,可让您为应用创建几乎任何类型的布局。在后台,网格系统使用 Flexbox 来布局项目,因此一切行为都与您使用弹性容器和弹性项目创建布局时的预期一致。 要在模板中使用网格系统,只需定义一个父级离子栅元素,然后是该元素内的行离子排最后在每行内添加列离子色谱: <ion-content padding> <ion-grid> <ion-row text-center> <ion-col>I'm a column</ion-col> <ion-col>Another column</ion-col> </ion-row> </ion-grid> </ion-content> 您会注意到,默认情况下,列的…
2024年8月26日

使用 Flow 进行静态类型检查

当你摆弄 Flow(Facebook 的静态类型检查库)几分钟后,会发生一件有趣的事情。JavaScript 类型开始变得简单、有用,而且 — — 我们敢说 — — 有趣。 请亲眼看看。 值得一提的是,Flow 是 React 的良好合作伙伴,但它在任何 JS 环境中都能很好地发挥作用。 安装 $ cd进入你最喜欢的just-messing项目或者使用React CLI工具快速$ create-react-app something-disposable。 无论哪种情况,您都需要从根目录运行以下命令: $ npm i -D flow-bin $ flow init 简而言之,这就是安装。安装 Flow。创建一个(至少对于这个介绍来说)空白.flowconfig文件。从那里开始如何进行有点多选。 你用过create-react-app嗎?太棒了。它可以自动与 Flow 配合使用。 使用…
2024年8月26日

Jest 中的异步测试

并非所有事物都同步执行,因此并非所有事物都应该同步测试。 Jest 提供了一些异步测试选项。 使用回调 如果您的函数接受一个参数,Jest 将为其提供一个done回调;测试将运行,直到done或被done.fail调用或超时。这对于测试可观察对象非常有用: // Let's say you're testing a cup that emits an event when it is full or spills. it('fills without spilling.', (done) => { const smartCup = new SmartCup(); // The event happened, so call `done`. smartCup.on('full', () => done()); // If a failing condition happens, you can call `…
2024年8月26日

使用 Jest 进行模拟函数概述

高阶函数接受一个函数并返回一个函数。Jest提供了一种方法来确保您给出的函数被正确使用。 测试高阶函数 假设你想写一个记忆函数。它可能看起来像这样: // memoize.js export default function memoize(func) { return function (key) { const registry = new Map(); let value = registry.get(key); if (typeof value === 'undefined') { value = func(key); registry.set(key, value); } return value; } } 为了测试它,你会得到类似的东西: import memoize from './memoize'; it('memoizes `func`.', () => { // `func` here…
2024年8月26日

如何使用 GPG 加密和签名消息

介绍 GPG,即 GNU Privacy Guard,是一种公钥加密实现。它允许各方之间安全地传输信息,并可用于验证消息来源的真实性。 在本指南中,我们将讨论 GPG 的工作原理以及如何实现它。我们将使用 Ubuntu 16.04 服务器进行此演示,但也将包括其他发行版的说明。 公钥加密的工作原理 许多用户面临的一个问题是如何安全地进行通信并验证他们正在交谈的一方的身份。许多试图回答这个问题的方案至少在某些时候需要通过不安全的媒介传输密码或其他身份证明。 确保只有预期方可以读取 为了解决这个问题,GPG 依赖于一种称为公钥加密的安全概念。其理念是,您可以将传输的加密和解密阶段分成两个独立的部分。这样,只要您确保解密部分的安全,您就可以自由分发加密部分。 这将允许单向消息传输,任何人都可以创建和加密,但只能由指定用户(拥有私钥解密的用户)解密。…
2024年8月26日

使用被动事件监听器加速滚动事件

好吧,让我快速把这个问题说清楚。我讨厌wheel那些将事件touchstart附加到页面的网站touchmove。非常讨厌它们。主要原因是它们的性能太差,尤其是在移动设备上。你看,浏览器必须等到事件监听器完成执行后才能重新绘制页面,因为事件可以被取消。如果你的事件在每次滚动时都运行,那么滚动页面就会变得非常不顺畅,特别是如果你没有对事件进行反跳。幸运的是,现在有一个解决方案:被动事件监听器。 被动事件监听器允许您将不可取消的处理程序附加到事件,让浏览器围绕事件侦听器进行优化。例如,浏览器可以继续以本机速度滚动,而无需等待事件处理程序完成执行。 虽然它们是规范中相对较新的成员,但它们已经得到了大多数大公司的支持。(基本上,除了 IE、Edge 和 Opera Mini 之外的所有公司。) 此外,它们的使用方式不会真正破坏现有行为…
2024年8月26日

Cycle.js 的简单介绍

Cycle.js 是我们迄今为止有机会惊叹和困惑的最易用的 JavaScript FRP 框架。优点是它有很多训练轮来帮助你走上摇摇晃晃的道路。缺点是:实现起来容易理解起来难,而且文档也没什么帮助。 开始行动的最佳方式是使用 Cycle 自己的create-cycle-app(通过 NPM 或 Yarn 按名称安装)。您最终会得到类似下面所示的内容,但已具备启动开发服务器或部署构建所需的所有必要框架。我们对其进行了简化以便说明。 import {run} from '@cycle/run'; import {div, makeDOMDriver} from '@cycle/dom'; import xs from 'xstream'; const main = function(sources) { const vtree$ = xs.of( div('My Awesome Cyc…
2024年8月26日

使用 GraphQL 进行自省查询

使用 GraphQL,您可以运行自省查询来了解 GraphQL 架构的可用字段和类型。这种自省功能也使 GraphiQL 能够提供有关架构和自动完成功能的文档。 让我们使用星球大战SWAPI 公共 API端点来运行一些内省查询。 __类型 首先,让我们使用内置的__类型: query FilmType { __type(name: "Film") { kind name fields { name description type { name } } } } Kind为我们提供类型的枚举值,如 OBJECT、SCALAR 或 INTERFACE。 名称给了我们类型的名称。 描述,嗯,给了我们描述! 响应内容如下: { "data": { "__type": { "kind": "OBJECT", "name": "Film", "fields": [ { "name": "title", "descripti…
2024年8月26日

使用 Surge、Now 和 Glitch 进行零配置部署

每个应用程序的生命周期中都会有那么一个时刻,它必须被推出巢穴,进入一个冷漠无情的其他人的机器世界,在那里“在我的机器上运行”无法保护它。好消息是,部署,至少就 MVP 而言,从未如此简单。我们说的是一条命令。我们说的是,.*rc你几乎不需要熟悉任何文件或复杂的文档。我们说的是,做一个东西,按下按钮,分享它,然后再费力扩展。 我们讨论的是Surge、Now和Glitch:三个奇妙的工具,它们各有优势和特性,可以消除文本编辑器与世界之间的每一牛顿摩擦。 为了便于理解,我们将在本次导览中使用相同的两个存储库。同一个应用程序的两个版本,一个使用Next.js制作,另一个使用Create React App CLI 制作。两者都运行 React,但这些部署工具都不是 React 独有的。重要的是 Create React App 的build脚本会生…
2024年8月26日

如何用 Fortran 编写出色的程序

序幕 事实上,Fortran 编程语言非常适合那些从事科学和工程的人。它因短语“公式翻译”而得名,是一种非常适合机器编程的语言。 如果您愿意的话,Fortran 是 IBM 在 20 世纪 50 年代出于对科学和工程应用的高度尊重而开发的。Fortran 从我们的古代大师到今天一直占据着这一领域的主导地位,因为它的优点已在要求严格的计算领域中得到不断证实。 利用本指南在您的机器中建立 Fortran 并用它编写一个设备齐全的程序。 你需要什么 在你开始本指南之前,你必须先使用具有 sudo 非 root 用户权限的 Ubuntu 16.04 服务器,你可以在阅读“使用 Ubuntu 16.04 进行初始服务器设置”时完成此操作。 如果您发现自己对终端环境不太熟悉,那么“ Linux 终端简介”这篇文章可能会很有用。 正确安装 Fortran 我们首先利用下面的命令来修改我们…