摘要:
之前折腾 GtiHub Actions 想实现提交 issue 后将 issue 的内容生成一个 Markdown 文件提交到仓库,从而实现自动发布到 GitHub Pages 的目的。倒是有一些现成的 Action,但无法完全满足要求,所以自己尝试写一个 wayou/turn-issues-to- 阅读全文
摘要:
待解构字段为原始值 正常情况下, const obj = { a: 1, b: 2, }; const { a, b } = obj; console.log(a, b); // 1 2 当被解构字段缺失时, const obj = { a: 1, }; const { a, b } = obj; 阅读全文
摘要:
考察如下示例代码: // 创建二维数组 const arr = Array(2).fill([]); // 操作第一个元素 arr[0].push(1); // 结果是操作了所有数组 console.log(arr); // [ [ 1 ], [ 1 ] ] 和 new 不 new 关系,以下代码问 阅读全文
摘要:
考察如下代码,页面中有个输入框,通过 Recoil Atom 来存储输入的值。 App.tsx function NameInput() { const [name, setName] = useRecoilState(nameState); return ( <> <input type="tex 阅读全文
摘要:
使用全局 window 上自定义的变更进,TypeScript 会报属性不存在, console.log(window.foo) // ❌ Property ‘foo’ does not exist on type 'Window & typeof globalThis'.ts(2339) 需要将自 阅读全文
摘要:
继续使用 Recoil 默认值及数据级联的使用 的地域可用区级联的例子。 地域变更后可用区随之联动,两个下拉框皆默认选中第一个可选项。 从 URL 获取默认值 考虑这种情况,当 URL 中带了 query 参数指定地域时,想要默认选中指定的地域。 首先安装一个解析 query 的库 query-st 阅读全文
摘要:
前情回顾 书接上回,前面引出了在数据存在级联的情况下,各下拉框之间的默认值及值变化的处理。简单回顾一下: 场景是: 地域下拉决定可选的可用区 默认选中第一个地域,通过设置 atom 的 default 字段 默认选中该地域下第一个可用区,通过设置 atom 的 default 字段 问题: 手动选择 阅读全文
摘要:
Recoil 中默认值及数据间的依赖 通过 Atom 可方便地设置数据的默认值, const fontSizeState = atom({ key: 'fontSizeState', default: 14, }); 而 Selector 可方便地设置数据的级联依赖关系,即,另一个数据可从现有数据进 阅读全文
摘要:
通过简单的计数器应用来展示其使用。先来看没有 Recoil 时如何实现。 首先创建示例项目 $ yarn create react-app recoil-app --template typescript 计数器 考察如下计数器组件: Counter.tsx import React, { useS 阅读全文
摘要:
CSS 实现的文本截断 考察如下代码实现文本超出自动截断的样式代码: .truncate text 4 { overflow: hidden; text overflow: ellipsis; display: webkit box; webkit box orient: vertical; web 阅读全文
摘要:
考察如下的 HTML 片段,通过 CSS 的 nth child() 伪选择器实现列表的颜色循环,比如每三个一次循环。 <ul> <li>1</li> <li>2</li> <li>3</li> <li> 阅读全文
摘要:
来看以下有趣的代码, <!DOCTYPE html> <html lang="en"> <head> <meta http equiv="refresh" content="1" /> <title>refresh every 1 s< 阅读全文
摘要:
Currying,中文多翻译为柯里化,感觉这个音译还没有达到类似 Humor 之于幽默的传神地步,后面直接使用 Currying。 什么是 Currying Currying 是这么一种机制,它将一个接收多个参数的函数,拆分成多个接收单个参数的函数。 考察下面的代码: function add (a 阅读全文
摘要:
axios 中一个请求取消的示例: axios 取消请求的示例代码 import React, { useState, useEffect } from "react"; import axios, { AxiosResponse } from "axios"; export default fun 阅读全文
摘要:
将该思想抽象出来,其实和 Redux 就无关了。问题变成,怎样实现在截获函数的执行,以在其执行前后添加自己的逻辑。 为了演示,我们准备如下的示例代码来模拟 Redux dispatch action 的场景: const store = { dispatch: action => { cons 阅读全文
摘要:
泛型类型 TypeScript 中,类型(interface, type)是可以声明成泛型的,这很常见。 interface Props<T> { content: T; } 这表明 Props 接口定义了这么一种类型: 它是包含一个 content 字段的对象 该 content 字段 阅读全文
摘要:
对于较大的代码仓库来说,如果只是想查看和学习其中部分源代码,选择性地下载部分路径中的代码就显得很实用了,这样可以节省大量等待时间。 比如像 Chromium 这种,仓库大小好几 G 的。 clone 仓库中部分路径下的代码分三步, 本地初始化一个空仓库,将目标仓库 git 地址设置成远端 origi 阅读全文
摘要:
结论 Map:存放键值对,区别于 Object,键可以是任何值。 Set:存放不重复的值 Map 存储键值对,读取时与插入顺序一致。 var map = new Map([[1, "1"], [3, "3"], [2, "2"]]); map.set("foo", "bar"); for (cons 阅读全文
摘要:
C++ 中一个标识符配合着各种修饰界定符,使得标识符的本意不那么直观一眼就能看出,甚至需要仔细分析,才能知道该标识符的具体你含义。 比如: void ( signal(int, void ( fp)(int)))(int); 其中 signal 是什么? 螺旋法则 对于如何进行变量的辩识,有个非官方 阅读全文
摘要:
假设类中创建的 readonly 类型的属性,该类型的属性只能在声明处或构造器中进行初始化。 class Octopus { readonly name: string; readonly numberOfLegs: number = 8; constructor (theName: string) 阅读全文