获得徽章 0
- #青训营笔记创作活动#
1月11日 打卡day34
今日学习
三元运算符我觉得大家应该都很熟悉吧,很多时候简单的一些判断我们都可以使用三元运算符去替代 if else,这里只推荐 一层 三元运算符,因为多层嵌套的三元运算符也不具备良好的可读性🥹。
Javascript 的逻辑或 || 的短路运算有时候可以用来代替一些比较简单的 if else
逻辑或 || 的短路运算:若左边能转成true,返回左边式子的值,反之返回右边式子的值。
短路运算跟三元运算虽然很好用,代码也很简洁,不过都只能用于简单的判断,遇到多重条件判断就不能使用了。
对于 switch case,虽然它的可读性确实比 else if 更高,但是我想大家应该都觉得它写起来比较麻烦吧(反正我觉得很麻烦)。展开赞过评论1 - #青训营笔记创作活动#
1月10日 打卡day33
今日学习
Pinia 号称下一代的 Vuex。
经过初步体验,发现相比于 Vuex,Pinia 确实有了很大进步,最明显的就是删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。
用了一个常见的登录场景,先注册好 pinia 插件,然后定义需要管理的数据(状态)和方法(登录逻辑),然后在组件中初始化 store,并使用数据,调用方法,演示了使用 Pinia 的基本流程,最后还介绍了一个持久化插件,帮助持久化 Pinia 中的状态。
从这个过程中很明显体会到,Pinia 的使用相比 Vuex ,API 更加简单,数据的流转也更加清晰。展开评论点赞 - #青训营笔记创作活动#
1月9日 打卡day32
今日学习
渲染数据this.fileData必须是一个ArrayBuffer格式的数据,如果请求的的数据是Blob格式必须要先使用Blob.arrayBuffer()转换
pdf文件渲染后如果不能调整大小会因为源文件的大小和文件内容,出现模糊的问题,所以进行缩放渲染是有必要的展开评论点赞 - #第五届青训营阅读打卡#
1月8日 打卡day31
今日学习
AST(抽象语法树) 到底是什么?
AST基础:从零到一手撸一个功能完备的编译器
AST基础:Babel 的设计理念
AST的应用:手写console插件,再也不怕打开控制台满屏的console了
AST的应用: ES6 是如何转成 ES5 的?
AST的应用:30行代码依靠 AST 实现代码压缩
AST的应用:40行代码知晓 ESLint 的工作原理
AST的应用:手写 按需加载插件 ,同事看了都说666
AST的应用:手写 Typescript 代码检测插件(fork-ts-checker-webpack-plugin),原来 TS语法检测如此简单
其他延伸:结合 AST 手写监控系统中的日志上传插件
其他延伸:教你玩转AST,最佳实践展开评论点赞 - #青训营笔记创作活动#
1月7日 打卡day30
今日学习
qiankun 一共有 3 种沙箱:
SnapshotSandbox:记录 window 对象,每次 unmount 都要和微应用的环境进行 Diff
LegacySandbox:在微应用修改 window.xxx 时直接记录 Diff,将其用于环境恢复
ProxySandbox:为每个微应用分配一个 fakeWindow,当微应用操作 window 时,其实是在 fakeWindow 上操作
要和这些沙箱结合起来使用,qiankun 会把要执行的 JS 包裹在立即执行函数中,通过绑定上下文和传参的方式来改变 this 和 window 的值,让它们指向 window.proxy 沙箱对象,最后再用 eval 来执行这个函数。展开评论点赞 - #青训营笔记创作活动#
1月5日 打卡day29
今日学习
package.json 是前端每个项目都有的 json 文件,位于项目的根目录。许多脚手架在搭建项目时也会自动帮我们自动初始化好 package.json。
package.json 里面有许许多多的配置,与项目息息相关,了解它们有助于了解项目,提效开发,规范代码。
描述配置
文件配置
脚本配置
依赖配置
发布配置
系统配置
第三方配置展开评论点赞 - #青训营笔记创作活动#
1月4日 打卡day28
今日学习
本文从一个基础案例出发,先依次讲解了 Tapable 中各种类型 Hook 的基本用法和运行机制,接着再次回到最初的案例中,花了大量篇幅讲解 Tapable 的核心思想和实现思路。在这过程中不仅讲清楚了怎么去实现,更重要的是授人以渔,分析了为什么这么做。
最后在手撕代码环节,我们通过大约40行代码手写了 mini 版的 SyncHook 来加深印象,帮助大家在读源码的过程中会更加顺畅。展开评论点赞 - #青训营笔记创作活动#
1月3日 打卡day27
今日学习
Map 比 Object 快,除非有小的整数、数组索引的键,而且它更节省内存。
如果你需要一个频繁更新的 hash map,请使用 Map;如果你想一个固定的键值集合(即记录),请使用Object,并注意原型继承带来的陷阱。
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。展开评论点赞 - #青训营笔记创作活动#
1月2日 打卡day26
今日学习
MPA(Multi-page application) 即多页应用,是从服务器加载多个 HTML 页面的应用程序。每个页面都彼此独立,有自己的 URL。当单击 a 标签链接导航到另一个页面时,浏览器将向服务器发送请求并加载新页面。例如,传统的模板技术如JSP、Python、Django、PHP、Laravel 等都是基于 MPA 的框架,包括目前比较火的 Astro 也是采用的 MPA 方案。
SPA(Single-page application) 即单页应用,它只有一个不包含具体页面内容的 HTML,当浏览器拿到这份 HTML 之后,会请求页面所需的 JavaScript 代码,通过执行 JavaScript 代码完成 DOM 树的构建和 DOM 的事件绑定,从而让页面可以交互。如现在使用的大多数 Vue、React 中后台应用都是 SPA 应用。展开评论点赞 - #青训营笔记创作活动#
1月1日 打卡day25
今日学习
了解 docker 常见操作,如构建镜像、运行容器、进入容器执行命令
如何进入 docker 容器中进行调试
使用 docker 启动 nginx 容器,并在本地浏览器某端口可直接打开
如何得知启动 nginx 容器的 IP 端口
了解 docker 原理,如何模拟 docker 隔离环境及限制资源
Dockerfile、Image、Container 有何区别
Dockerfile 中 CMD 与 RUN 有何区别展开评论点赞