- 博客(14)
- 收藏
- 关注
原创 mini-vite(学习笔记)
前端工程关键模块化需求业界的模块标准非常多,包括 ESM、CommonJS、AMD 和 CMD 等等。前端工程一方面需要落实这些模块规范,保证模块正常加载。另一方面需要兼容不同的模块规范,以适应不同的执行环境。兼容浏览器、编译高级语法由于浏览器的实现规范所限,只要高级语言/语法(TypeScript、 JSX 等)想要在浏览器中正常运行,就必须被转化为浏览器可以理解的形式。这都需要工具链层面的支持,而且这个需求会一直存在。线上代码质量生产环境中,我们不仅要考虑代码的安全性、兼容性问题,保证线上代
2024-01-05 11:14:43
894
1
原创 事件及事件委托
事件委托: 只需要给容器做一个事件绑定(点击内部的任何元素,根据事件的冒泡传播机制,都会让容器事件也触发,我们在这里,根据事件源,做不同的事情就可以了)即便我们没有给body的点击事件绑定方法,当我们点击body的时候,其点击行为也会被触发,只不过啥事都不做而已!第三步:按照捕获阶段分析出来的路径,从里到外,把每一个元素的点击行为也触发!第二步:把事件源(点击的这个元素)的点击行为触发(目标阶段)例如:当我们触发 inner 的点击i行为的时候。事件委托: 利用事件的传播机制,实现的一套事件绑定处理方案。
2023-06-27 18:20:52
119
原创 React中的合成事件
Synthetic Event:合成事件是围绕浏览器原生事件,充当跨浏览器包装器的对象;它们将不同浏览器的行为合并为一个API,这样做是为了确保事件再不同浏览器中显示一致的属性!
2023-06-27 13:29:16
410
原创 Vue2中的双端diff算法缺陷
对于这样的diff操作,首先对于e节点进行双端比对,结果是匹配不到,新建e节点到头部;然后指针后移到b,继续进行双端比对,比对不到,然后拿着b节点去找,找到有相同的b节点,然后将b节点移动到前面;但是,对于旧列表 bcd 节点,新列表中也是 bcd 节点,我们其实完全不用去移动 bcd 节点的,我们只需要将a节点移动到后面来就可以了~所以再vue2中的diff算法,它会去找这个节点,如果可以复用,那么就会产生移动。,非动态的节点就不比较了,vue3在模板编译的时候会标记,哪些是动态节点,只比较动态节点!
2023-06-21 16:15:52
177
原创 手写vue2diff算法及Vue3中优化
虚拟 DOM 在vue中起到了优化性能,提供跨平台兼容性及简化开发流程的作用对节点进行标识(相同),用于优化节点更新。key在同一层级的兄弟节点中必须是唯一的。Vue 2的diff算法通过递归、双指针和优化策略来实现的
2023-06-13 10:19:36
169
1
原创 React: setState进阶
React16中:如果在合成事件(jsx元素中基于onXxx绑定的事件)、周期函数中,setState的操作是异步的!但是如果setState出现在其他异步操作中(例如:定时器、手动获取DOM元素做的事件绑定等),它将变为同步的操作(立即更新状态和让视图渲染)!- 当所有的代码操作结束,会“刷新队列” (通知更新队列中的任务执行):把所有放入的setState 合并在一起,执行一次视图更新 (批处理操作)在React18中,setState操作都是异步的,不论是在哪执行,例如:合成事件、周期函数、定时器…
2023-06-06 15:56:38
43
原创 Vue3组件化开发习惯
/ 不推荐// 推荐foo: {})</script>自定义事件的名称会被自动做转换,我们通常使用驼峰做事件名,但监听时,需要转换为肉串方式。script setup 中定义</script>
2023-06-01 11:47:14
132
1
转载 TCP/IP 网络模型
TCP/IP 网络通常由上到下分成 4 层,分别是 应用层,传输层,网络层和网络接口层。每一层的封装格式为:网络接口层的传输单位是帧,IP 层的传输单位是包,TCP 层的传输单位是段,HTTP 的传输单位则是消息或报文。但这些名词可以统称为数据包。
2023-05-31 17:12:09
47
1
原创 React中如何获取DOM元素
基于修改数据/状态,让视图更新,来达到需要的效果 (推荐):基于ref获取DOM元素,我们操作DOM元素,来实现需求和效果 (偶尔)基于ref获取DOM元素的语法1. 给需要获取的元素设置ref=‘xxx’,后期基于this.refs.xxx去获取相应的DOM元素(不推荐使用)获取: this.refs.titleBox2. 把ref属性值设置为一个函数3.基于 React.createRef() 方法创建一个ref对象 -> this.xxx = {current: null}
2023-05-31 12:23:17
990
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人