闪烁之狐
03
20
为什么需要微前端? 为什么需要微前端?
微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应 用。 微前端的核心在于拆, 拆完后在合,实现分而治之! 1. 微前端解决的问题 不同团队(技术栈不同),同时开发一个应用 每个团队开发的模块都可以独立开发,
2023-03-20
20
webpack 编译流程 webpack 编译流程
webpack 编译流程 初始化参数:从配置文件和 Shell 语句中读取并合并参数,得出最终的配置对象 用上一步得到的参数初始化 Compiler 对象 加载所有配置的插件 执行对象的 run 方法开始执行编译 根据配置中的entry找出
2023-03-20
16
15
hasOwnProperty hasOwnProperty
Object.prototype.hasOwnProperty()hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。 const object1 = {
2023-03-15
15
defineProperty 和 toStringTag defineProperty 和 toStringTag
1. toStringTag Symbol.toStringTag 是一个内置 symbol,它通常作为对象的属性键使用,对应的属性值应该为字符串类型,这个字符串用来表示该对象的自定义类型标签 通常只有内置的 Object.prototyp
2023-03-15
15
Hexo Hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
2023-03-15
10
polyfill 实践 polyfill 实践
1. babel-polyfill Babel默认只转换新的Javascript语法,而不转换新的 API,比如 Iterator, Generator, Set, Maps, Proxy, Reflect,Symbol,Promise
2023-03-10
09
模块化的发展历程 模块化的发展历程
一、模块化1.1.什么是模块化 模块划就是按照一定的规则把代码封装成若干的相互依赖的文件并进行组合 每个模块内的数据都是私有的,只向外选择性的暴露一些方法和数据与外界进行数据通信 1.2.模块化的意义 有利于代码分享、解耦以及复用 团队并
2023-03-09
01
06
react 虚拟列表之 FixedSizeList 封装 react 虚拟列表之 FixedSizeList 封装
1. 长列表渲染 如果有海量数据在浏览器里一次性渲染会有以下问题 计算时间过长,用户需要长时间等待,体验差 CPU 处理时间过长,滑动过程中可能卡顿 GPU 负载过高,渲染不过来会出现闪动 内存占用过多,严重会引起浏览器卡死和崩溃 优化
2023-01-06
06
浏览器缓存机制介绍与缓存策略剖析 浏览器缓存机制介绍与缓存策略剖析
缓存可以减少网络  IO  消耗,提高访问速度。浏览器缓存是一种操作简单、效果显著的前端性能优化手段。对于这个操作的必要性,Chrome 官方给出的解释似乎更有说服力一些: 通过网络获取内容既速度缓慢又开销巨大。较大的响应需要在客户端
06
安全问题:CSRF 和 XSS 安全问题:CSRF 和 XSS
1 前言 CSRF:基本概念、攻击方式、防御措施 XSS:基本概念、攻击方式、防御措施 有人问:SQL注入算吗?答案:这个其实跟前端的关系不是很大。 2 CSRF2.1 CSRF 的基本概念、缩写、全称 CSRF(Cross-site
04
V8 内存管理(垃圾回收机制) V8 内存管理(垃圾回收机制)
V8 也会申请内存,申请的内存又会分为堆内存和栈内存 1.1 栈 栈用于存放 JS 中的基本类型和引用类型指针 栈的空间是连续的,增加删除只需要移动指针,操作速度非常快 栈的空间是有限的,当栈满了,就会抛出一个错误 栈一般是在执行函数时
8 / 10