目前大多数浏览器不支持多行文本缩略,因此需要做兼容处理。比较好的思路是在首次渲染后去读取每个文字的宽度,计算是否应该展示缩略效果。为了能够读取每个文字的宽度,需要使用 span 包裹每个文字。 在非缩略状态下,通过读取每个文字的宽度,计算是否应该缩略如果需要缩略,则使用一个 ...
虚拟渲染列表简单介绍
原理 容器的高度是给定的,且通过设置 overflow: auto 让它的子元素可以滚动。 列表只设置一个 height 属性即可,它的高度由列表项高度和列表项个数决定,它存在的意义是使得滚动条可以正确显示。 列表项分为真实渲染和虚拟渲染两种,真实渲染的列表项需要被包裹起来,然后对包裹层设置 tra ...
rollup 源码解析
首页是对外暴露的 rollup 方法,它调用的是 rollupInternal 方法。 export default function rollup( rawInputOptions: GenericConfigObject): Promise<RollupBuild> { ...
如何在 rollup 源码中 debug
使项目可以本地运行因为 rollup 是使用 ts 编写的,所以需要下载 ts-node 来支持本地运行。过程中主要遇到两类问题: SyntaxError: Cannot use import statement outside a module ts 报错 第一个问题通过修改 tsconfig ...
rollup cli
读取 commandimport argParser from 'yargs-parser';const command = argParser(process.argv.slice(2), { alias: commandAliases, configuration: { ...
Broswer Event Loop
不是我懒惰,是我怕翻译错soHTML Standard - Event LoopHTML Standard - TimersHTML Standard - Microtask QueuingConcurrency model and the event loopIn dep ...
Node Event Loop
下面两段代码,你能说出正确的打印顺序分别是什么吗? setTimeout(() => { console.log('timeout');}, 0);setImmediate(() => { console.log('immediate');}) ...