Viki

Viki 写东西的地方

努力上进且优秀
github
email
x
steam
bilibili
douban
cover
cover

【已开源】现代化的高质量 React Hooks 库

@shined/react-use 是一个对 SSR(服务端渲染)友好、全面且高度优化的 React Hooks 库,提供了灵活且高效的钩子解决方案。完全采用 TypeScript 开发,配备了包含丰富示例的交互式文档 🔥。 主要受到 VueUse 的启发,同时也吸取了 r…
Git Submodules 备忘录
这是一份给自己的、简单而又基础的 Git Submodules 备忘录。 因为发现自己一到用的时候就忘了,结果就是一遍又一遍问 GPT... 克隆带有 Git Submodules 的仓库 Copy # 方法一,一步到位 git clone --recurse…
解决 git/ssh 报错:too many authentication failures
主要是因为 ssh 的 host 规则配置过多,且没有设置精确匹配,加上又存在多个密钥,导致了 ssh 挨个尝试,在没有尝试到成功的匹配之前,因为失败次数过多而被服务器拒绝了。 解决方案:host 匹配规则里加上精确匹配。 Copy # ~/.ssh/config Host…
公网访问 TP-LINK 路由管理页绕过 tplogin.cn 跳转
解决方案 先说解决方案,通过 nginx 配置代理并利用其替换功能修改前端页面里写死的判别逻辑即可。 Copy server { # 暴露的端口 listen 1234; location / { # 管理页地址 proxy_pass http…
cover

Guitar Studio 😍!

🎸 + 🌐 = your all-in-one guitar online toolkit. It's now under developing, give it a try? Online Link: https://guitar.viki.moe GitHub: htt…
Object 方法:`freeze` vs `seal` vs `preventExtensions`
当我们涉足 JavaScript 的世界时,我们会遇到 freeze、seal和preventExtensions这三个神秘的伙伴。它们就像保护我们的对象免受外界伤害的护身符,但它们之间可是各有不同! Object.freeze() 这位大爷可是彻头彻尾的冰霜法师!一旦你使用了O…
cover

JavaScript 的函数参数竟然能相互访问到?

是的,别骂了,我很菜,我在大惊小怪 😩。 Copy const buildFn = ( name = "Viki", sayHi = () => { console.log(name); } ) => { return sayHi; }; buildFn…
cover

来试试 node 内置的 "delay" 函数

前言 在实际开发中,经常遇到需要在异步操作里进行 “延时” 操作的情况,通常会编写类似于以下的 util 函数来进行处理。 Copy const delay = (ms: number) => new Promise((r) => setTimeout(r, ms)); 这很好…
cover
cover
cover
cover

让 TS 类型 "cat" | string 支持补全提示

问题描述 考察以下 TS 类型。 Copy type Animal = "cat" | "dog" | string; 正常情况下,我们可能会按上面的方式来写,但是这在 vscode 上得不到良好的补全提示。 Copy const animal: Animal…
频繁发布 npm 包时如何确保始终安装最新版本
在一些极端情况下可能需要频繁发布 npm 包,而 npm 默认的缓存时间是 5 分钟。也就是说,在五分钟之内只会请求一次 npm 包的元数据,如果在更新后五分钟之内再次发包,默认情况下是不会检测到新版本的。 这个时候,如果你搭配 ncu(npm-check-updates 包…
什么是 Shebang (或 hashbang)
什么是 Shebang? Shebang,也称为 hashbang 或 sha-bang,是一种在 Unix、Linux 和其他类 Unix 系统上的脚本中使用的特殊字符序列。它的作用是指定脚本应该由哪个解释器来解释执行。 Shebang 由两个字符组成:一个井号(#)和一个惊叹…
cover
cover
cover

如何优雅的畅玩 4399 等 Flash 游戏

Flash 和浏览器现状 据 Adobe 官网描述,Adobe 在 2020 年 12 月 31 日之后不再支持 Flash Player,并从 2021 年 1 月 12 日开始阻止 Flash 内容在 Flash Player 中运行。各大主流浏览器(Chrome, Edge…
JavaScript 正则的高级用法
1. 惰性匹配 如 Hi+? 只会匹配 Hiiiii 中的 Hi Copy 'Hiii'.replace(/Hi+?/, 'x') // xii 'Hiii'.replace(/Hi+/, 'x') // x 'Hellollo'.replace(/H.*?llo/, 'x')…
记录 Axios 的 `Z_BUF_ERROR` BUG
在 Axios 的 1.2.0 版本,不少人遇到了 Z_BUF_ERROR 的 BUG。 当设置了 Content-Encoding 的请求头,但是返回的内容为空时(如 204 请求、HEAD 请求、或者重定向请求),Axios 仍会调用 zlib 的 BrotliDecoder…
浅谈 HTML 中的字符实体(如 ` `, `<` 等)
在入门学习 HTML 和 CSS 编写简单网页的时候,由于标签内容中的多个空格会被自动将合并为一个空格,我们可能会使用   来实现多个空格的效果。 除此之外,为了实现某些布局而你对 CSS 的 margin 和 padding 等属性又不熟悉的时候,也可能歪打正着了解到…
由 emoji 字符分割问题引发的对 emoji 的重新认识
文章内容较多,如果只是寻找解决方案,请直接划到文末。 谈到 emoji 想必我们都不陌生,它是一种广泛使用在网页和聊天上的表情符号,如 😂, 😄 等。 虽然 emoji 是合法的字符串内容,但由于其反直觉的长度和类型的多样,在分割的时候很可能会产生出乎意料的结果…
cover

GitHub - vikiboss/60s: 60s API,不仅有 60s 看世界,也提供小爱同学、热搜、汇率、bing 壁纸等,欢迎贡献。

60s API,不仅有 60s 看世界,也提供小爱同学、热搜、汇率、bing 壁纸等,欢迎贡献。
cover

GitHub - vikiboss/deno-functions: A set of useful serverless functions powered by Deno and deployed by Deno Deploy. They're fast!

A set of useful serverless functions powered by Deno and deployed by Deno Deploy. They're fast!
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.