这周算是近来难熬的一周,需求是 “What You See Is What You Get” 的简易版本
- 实现 Simple 版本富文本编辑器,不过很不 Simple,用到的
contenteditable
属性有多不靠谱,直接看why-contenteditable-is-terrible就能知道。了解到 DOM 相关知识,ex: Selection/Range等,还有 .cloest 这样的类 jQuery 方法,尽管 React/Vue 很流行,还是值得重新梳理下原生 DOM 的。 - 还是对 Vue 不够了解,对 mouseenter/mouseleave 做事件代理时,没多想直接用原生 addEventListener/removeEventListener,本可以用 Vue 中 .capture 的。不过意外的是,Vue 处理 methods 时已会自动把 this 绑定到实例上。
- 网页里有很多细节需要前端工程师知道,比如 CSS 中的 object-fit/object-position/object-view-box,不考虑浏览器兼容性时,能直接解决问题 - 类似的还有 hyphens 等。
- 测试同学报 bug: iframe 被重复加载。还好在实现组件时组件划分的颗粒度比较小,用 functional component 包裹下原 class 实现的组件,再用 React.memo 一下搞定。
- 在实现配置管理相关功能,老大提到要做一个服务:提供配置 get/set/notify 功能。优势是,开发业务的只需要关心业务即可,不再操心存储/database 上线。ps: 下周去支持 server 端开发有点懵~
- 不喜欢同事在聊“坏代码”时说,这也没啥/能够实现需求就行/知道了 (但不改)。“好木匠不会在柜子背面用烂木头”。
- 重新认识 SVG 基础属性,后续可能会用到,特别是在流程图等方面。
- 看了收藏里的基于 CPS 变换的尾递归转换算法,最近读完 sicp 前几章节内容,对这类内容有点感觉。
- 3 月份体重降了 5 公斤左右,到 4.20 期望降到 68 公斤。
- 看了波西米亚狂想曲。推荐~