摘要: ## 前言 浏览器渲染原理作为前端必须要了解的知识点之一,在面试中经常会被问到。在一些前端书籍或者培训课程里也会经常被提及,比如 MDN 文档中就有[渲染原理](https://developer.mozilla.org/zh-CN/docs/Web/Performance/How_browsers 阅读全文
posted @ 2023-08-17 14:40 谭光志 阅读(24) 评论(0) 推荐(0) 编辑
摘要: ## 前言 通常情况下,一个 git 仓库就是一个项目,只需要配置一套 git hooks 脚本就可以执行各种校验任务。对于 monorepo 项目也是如此,monorepo 项目下的多个 packages 之间,它们是有关联的,可以互相引用,所以当成一个项目也没问题。 但是也有一种情况,一个 gi 阅读全文
posted @ 2023-08-17 14:39 谭光志 阅读(216) 评论(0) 推荐(0) 编辑
摘要: ## 背景 最近的项目有一个加载远程组件的需求。基于此我对 Vue 加载远程组件的方案进行了研究,并且整理了两个可行的解决方案。 ## HTML 文件 + umd 组件 这个方案是最简单、最容易实现的。组件以 umd 的格式进行打包,然后在 HTML 文件中直接使用。 ```html ``` 但是这 阅读全文
posted @ 2023-08-17 14:39 谭光志 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 由于一直在使用 markdown 编辑器写技术文章,所以对于编写体验很敏感。我发现各大社区的 markdown 编辑器基本都有同步滚动功能。只不过有些做得好,有些做得马马虎虎。出于好奇,我就打算自己亲自实现一下这个功能。 思考了一段时间,最后想出来了三种方案: 百分比滚动 双屏同时渲染占用面积大的元 阅读全文
posted @ 2022-08-09 13:31 谭光志 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 本文是可视化拖拽系列的第四篇,比起之前的三篇文章,这篇功能点要稍微少一点,总共有五点: SVG 组件 动态属性面板 数据来源(接口请求) 组件联动 组件按需加载 如果你对我之前的系列文章不是很了解,建议先把这三篇文章看一遍,再来阅读本文(否则没有上下文,不太好理解): 可视化拖拽组件库一些技术要点原 阅读全文
posted @ 2022-08-06 17:04 谭光志 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 最近看了几个微前端框架的源码(single-spa、qiankun、micro-app),感觉收获良多。所以打算造一个迷你版的轮子,来加深自己对所学知识的了解。 这个轮子将分为五个版本,逐步的实现一个最小可用的微前端框架: 支持不同框架的子应用(v1 分支) 支持子应用 HTML 入口(v2 分支) 阅读全文
posted @ 2022-02-27 16:10 谭光志 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 1. 同一电脑存在多个 Git 账号 假设我们在同一电脑上拥有多个 Git 账号,例如公司内部使用的是 Gitlab,个人使用的是 Github 或者 Gitee。那就会遇到一种情况,上班时想给个人开源项目提交代码,但是 Git 绑定的是公司的账号。 在这种情况下,我们可以让 Git 绑定多个不同的 阅读全文
posted @ 2021-11-09 10:18 谭光志 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 一个完整的前端监控平台包括三个部分:数据采集与上报、数据整理和存储、数据展示。 本文要讲的就是其中的第一个环节——数据采集与上报。下图是本文要讲述内容的大纲,大家可以先大致了解一下: 仅看理论知识是比较难以理解的,为此我结合本文要讲的技术要点写了一个简单的监控 SDK,可以用它来写一些简单的 DEM 阅读全文
posted @ 2021-10-11 23:08 谭光志 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 简介 Git 能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push 等钩子(hooks)。我们可以在 pre-commit 触发时进行代码格式验证,在 commit-msg 触发时对 commit 消息和提交用户进行验证,在 pre- 阅读全文
posted @ 2021-07-20 10:14 谭光志 阅读(2099) 评论(0) 推荐(0) 编辑
摘要: 最近在学习 vue-cli 的源码,获益良多。为了让自己理解得更加深刻,我决定模仿它造一个轮子,争取尽可能多的实现原有的功能。 我将这个轮子分成三个版本: 尽可能用最少的代码实现一个最简版本的脚手架。 在 1 的基础上添加一些辅助功能,例如选择包管理器、npm 源等等。 实现插件化,可以自由的进行扩 阅读全文
posted @ 2021-02-24 09:55 谭光志 阅读(270) 评论(0) 推荐(0) 编辑