
获得徽章 2
- #青训营笔记创作活动#
2月3日 打卡Day37
实现图片预览/查看的关键点在于用 CSS3 中的 transform 变换来实现2D或3D上的旋转,缩放,移动,倾斜等等变换。可以通过指针事件来进行多端统一的事件监听。PC段鼠标移动事件对应 mousemove,移动端对应 touchmove。展开评论点赞 - #青训营笔记创作活动#
2月2日 打卡Day36
vue中,不能使用index作为key的原因是使用index作为key会导致diff中的优化失效(降低了复用性,违背了虚拟DOM的初衷)。此外,在删除数据时,因为vue不会深入地区对比子组件的文本内容,所以会错误移除VDOM中的节点(index的值是不固定的)。展开评论点赞 - #青训营笔记创作活动#
2月1日 打卡Day35
引导页(或分步引导) 本质就是 化繁为简,将核心功能以更简单、简短、明了的文字指引用户去使用对应的功能,特别是 ToB 的项目,各种新功能需求迭代非常快,免不了需要 引导页 的功能来快速帮助用户引导。第三方库可以选择vue-tour、driver.js、shepherd.js、intro.js。展开评论点赞 - #青训营笔记创作活动#
1月31日 打卡Day34
从语法角度来看,短路运算、三元运算符、switch case都可以减少if-else连用/嵌套,也可以通过对象配置/策略模式来合理重构代码以减少if-else连用/嵌套,从而提高我们代码的可读性。展开评论点赞 - #青训营笔记创作活动#
1月30日 打卡Day33
Pinia 号称下一代的 Vuex。相比于 Vuex,Pinia删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。展开评论点赞 - #青训营笔记创作活动#
1月28日 打卡Day32
在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,docx的实现需要使用docx-preview插件,pdf的预览需要使用PDFJS这个插件,最终借用canvas上实现预览效果。展开评论点赞 - #青训营笔记创作活动#
1月27日 打卡Day31
抽象语法树(AST)是源代码的抽象语法结构的树状表现形式,简单点就是一个深度嵌套对象,这个对象能够描述我们书写代码的所有信息。
一个完整的编译器整体执行过程可以分为三个步骤:
1. Parsing(解析过程):这个过程要经词法分析、语法分析、构建AST(抽象语法树)一系列操作;
2. Transformation(转化过程):这个过程就是将上一步解析后的内容,按照编译器指定的规则进行处理,形成一个新的表现形式;
3. Code Generation(代码生成):将上一步处理好的内容转化为新的代码。
作为最常用的Javascript编译器之一,Babel 能够转译 ECMAScript 2015+ 的代码,使它在旧的浏览器或者环境中也能够运行,其实现就需要利用编译器技术。展开评论点赞 - #青训营笔记创作活动#
1月26日 打卡Day30
qiankun(乾坤)是由蚂蚁金服推出的基于Single-Spa实现的前端微服务框架,qiankun一共有3种沙箱:①SnapshotSandbox:记录window对象,每次unmount都要和微应用的环境进行Diff;②LegacySandbox:在微应用修改window.xxx时直接记录Diff,将其用于环境恢复;③ProxySandbox:为每个微应用分配一个fakeWindow,当微应用操作window时,其实是在fakeWindow上操作。
要和这些沙箱结合起来使用,qiankun会把要执行的JS包裹在立即执行函数中,通过绑定上下文和传参的方式来改变this和window的值,让它们指向window.proxy沙箱对象,最后再用eval来执行这个函数。展开评论点赞 - #青训营笔记创作活动#
1月25日 打卡Day29
package.json 是前端每个项目都有的 json 文件,位于项目的根目录。这篇文章简单介绍了 package.json 的常见配置,包括描述配置,文件配置,脚本配置,依赖配置,发布配置,系统配置,第三方配置等内容。展开评论点赞 - #青训营笔记创作活动#
1月24日 打卡Day28
这一篇依次讲解了Webpack的核心机制Tapable中各种类型Hook的基本用法和运行机制,接着再次回到最初的案例中,花了大量篇幅讲解Tapable的核心思想和实现思路。评论点赞