Typography

四畳半のへや

使用 TypeScript 为 Vue 组件的 prop 标注类型

发布于 # 技术文档

在选项式 API 或者不使用 <script setup> 时我们可以使用 PropType 这个工具类型来标记更复杂的 prop 类型: import { defineComponent } from 'vue' // 引入 Proptype import type { PropType } from 'vue' interface Book { title: string author: string year: number } export default defineComponent({ props: { book: { // 提供相对 `Object` 更确定的类型 type: Object as PropType<Book>, required: true }, // 也

【译文】Grid 用于布局, Flexbox 用于组件

发布于 # 译文

本文是 Ahmad Shadeed 的博客文章 Grid for layout, Flexbox for components 的翻译。 3 月 5 号开始翻译,摸了 3 个月终于翻译完了,下次还敢(不是 我的弟弟是一名刚毕业的软件工程师,现在他正在做前端开发相关的实习岗位。他以前学过 Grid 和 flexbox,但是我发现和我经常网上看到的情况一样,他在布局的时候使用 Grid 还是 flexbox 之间摇摆不定。举个例子,他尝试使用 Grid 布局去开发一个网站的 header,但是当他使用了 grid-column 属性的时候他发现过程好像并不像想象中那么顺利,所以他只能不停地调整来让页面看起来和设计稿一致。 说句实话,我不太喜欢这样子,所以我试着去找一些关于这方面的资料来让他了解 grid 和 flexbox 之间的区别,最好还能带上几个例子,但可惜的是我一无所获。所以我尝试写

【译文】IndexedDB 为什么这么慢?如何更好的使用呢?

发布于 # 译文

本文是 RxDB 文档 Opinions 部分的文章 Why IndexedDB is slow and what to use instead 的翻译,原作者为 pubkey。 我们可能出于离线使用的需求,也可能是出于缓存等等的其他目的,需要将 JavaScript Web Application 的数据保存在客户端本地也就是浏览器里。而在浏览器内存储数据一般来说有以下几个选项: Cookies 会随着每次 HTTP 请求被发送出去,所以它不能存储太多的数据。 WebSQL 已经被 弃用,因为它从来都不是一个标准,而将它变成标准又十分困难。 LocalStorage 是一个基于异步 IO-access 的同步 API,存储和读取都会使得 JavaScript 进程被完全阻塞,所以不应该在有许多键值对的情况下使用 LocalStorage 。 FileSystem API 可以用来存储

Hello 2022

发布于 # 随便写点

2021 对我来说是前所未有的一年,太多事情影响了我,能够很明显感觉到自己的改变,在很多事情上有了更加清晰的认识。希望在即将到来的 2022 年,不管是自己的文字也好,写的代码也好,还是我的一些想法也好,都能给他人带来一点帮助和启发,让这个似乎已经很糟糕的世界变得更好,这应该就是每一个理想主义者的宿命罢。

「他山之石」零贰

发布于 # 他山之石

艰深的语言有时出自学术内容的要求,有时则用来骗自己吓唬别人,浅显的语言,有时是大师的炉火纯青,有时是流于表面不肯深思。 —— 《走出唯一真理观》 现在,好多学术文章难读,跟内容深奥曲折没什么关系。很多时候无非显示他是个学术家,是个身份标志。我们要识别一个人的身份,可以看他穿什么品牌进什么餐厅,但最保险的是听他开口说话,萧伯纳在《卖花女》一剧中把这一点写得淋漓尽致。派个中学语文老师去和卖毒品的接头,一开口人家就识破你不是同行。一个行当有一个行当的行话,主要的功能是设置门槛,不让这个行当外面的人混进来。你要搞学术得有个“会员证”,证件上的戳子就是学术语言——你可以不会德文、英文、希腊文、古文,但你不能不会学术语言。你说“天冷,水都结冰了”,他说“在外因的作用下量变导致了质变”,一听就听出谁有学问谁没学问。你没啥悟性,没啥才华,只要你会说学术语言就是学者,所以你埋头苦练,四年大学外加三年研