记录工作时遇到的一些问题。
comlink 原理
Comlink通过提供一个RPC实现,将这种基于消息的API变成了对开发者更友好的东西。一个线程的值可以在另一个线程中使用(反之亦然),就像本地值一样。
ScratchAddons 项目使用这个库,用于在chrome extension中同步 contentScript 与 pagescript 的数据。
scratch-vm dispatch分析
dispatch 是什么 需要从scratch的插件的设计方案说起
官方设计了4类插件,Core以及Team分别是scratch默认的动作、外观等积木和扩展库中音乐、画笔等积木,offical 也许是指的写有合作者tag的插件(但是这些插件并非如列表中所描述的在sandbox中运行)。
我们要关注的是最后这一类 Unoffical, 这类仅提供了对sandbox 的支持。
while (true) !== 阻塞
while (true) { |
我还真没写过这样的代码,在看 ScratchAddons 源码的时候看到好些 addon 在 function 开头都有这样的代码。那这样不就死循环了么?
Switch动画
昨天整了一下FLIP动画,今天用 React 实现一个 Vue 中常用的 v-if/v-else 动画
核心: 父组件识别并控制子组件的渲染时机,并赋予对应的 class/style,使得Dom切换动画无缝连接
Flutter项目在Github Actions中使用唯一签名打包 / Electron 打包
最近学了下flutter相关的内容,在项目打包的时候发现一个问题,在不同的电脑以及github actions打包出来的apk,在安装到手机时,都会提示(使用adb命令安装可以看到log)package 签名不一致的问题,导致需要先卸载才能安装。