为什么需要事件委托

什么是事件委托?事件委托的原理又是什么?事件冒泡和事件捕获的区别又在哪里? 要解答上面三个问题,我们要一步步弄清楚事件机制:事件流 -> 事件冒泡 -> 事件捕获 -> 事件委托 事件流描述了页面接收事件的顺序。IE 和 Netscape 开发团队提出了几乎完全相 反的事件流方案。IE 支持事件冒泡流,而 Netscape 支持事件捕获流。 事件冒泡IE 事件流被称为事件冒...

发布于 前端

全面解析JavaScript中的原型

JavaScript 是一门面向对象的语言,但与其他面向对象语言 Java、python (基于类继承) 不同,它的继承方式是基于原型实现的。 原型 几乎每个JavaScript对象都有另一个与之关联的对象,这个对象被称为原型 ( prototype ),第一个对象从这个原型继承属性。 通过对象字面量创建的所有对象都有相同的原型对象,在JavaScript代码中可以通过 Object.p...

发布于 前端

全面解析JavaScript中的执行上下文

想要了解作用域,就必须先了解执行上下文。 变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为。每个上下文都有一个关联的变量对象(variable object),而这个上下文中定义的所有变量和函数都存在于这个对象上。 全局上下文是最外层的上下文。在浏览器中,全局上下文就是 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法。使用 ...

发布于 前端

设计模式之代理模式

代理模式简介:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。比如,某对象需访问目标对象,但由于某种情况,不方便或不能直接访问目标对象,通过一个中介进行访问,这个中介就是代理对象。 代理模式结构 抽象接口类:可以是抽象类也可以是接口,代理类和实体类都需要显式实现它。 实体类:被委托的类,是具体业务的执行者。 代理类:负责对实体...

发布于 设计模式

设计模式之状态模式

状态模式:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为 状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。 状态模式结构: 环境(Context):称为上下文类或环境类,它是拥有多种状态的对象。由于环境类的状...

发布于 设计模式

设计模式之组合模式

组合模式:组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,它是一种对象结构模式。 组合模式通过一种巧妙的设计方案,可以一致性地处理整个树形结构或树形结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点),其实就是利用对象的多态性来实现的。 组合模式结构 ...

发布于 设计模式

我对虚拟DOM的一些思考

最近编写vue插件时我遇到了一个问题:通过引入函数调用,创建虚拟DOM,并且把它转成真实DOM且挂载到body容器中,但当我需要再次把某个组件通过同样的方式挂载到body容器中,(这里暂把第一次创建的虚拟DOM称作旧VNode,第二次创建的称作新VNode)。 原本我是想两个VNode都存在body中,且新VNode排在旧VNode的后面,但在执行新VNode的挂载时却发现body容器中只剩...

发布于 vue

用ts实现一个时间转换器

封装一个时间转换器,可以将传入的时间(类似:2023-3-17)转成小时、周、月、年(和当前时间比较) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677...

发布于 typescript

仿ElMessage,自行封装一个全局message消息提醒

仿照element-plus的message消息提醒,自行封装一个简化版的全局message消息提醒 实现功能: 可以选择类型,如success、warning、error 通过vue插件或函数使用 但多次触发消息提示,只有一个消息提示框,目前还没实现多次触发弹出多个提示框 实现代码如下: src/components/Message/index.vue 1...

发布于 vue

想要提高开发效率,先把VScode快捷键用好

整理了一些使用VScode的小技巧:快捷键、配置代码片段 快捷键(window) Ctrl+N:新建文件 Ctrl+Shift+N:打开一个新的VScode编辑器 Ctrl+O:打开文件 Ctrl+W:关闭当前文件 Ctrl+\:拆分文件到侧边显示 Ctrl+Tab:在工作区切换文件窗口 Ctrl+B:显示/隐藏侧边栏 Ctrl+`:显示/隐藏Terminal C...

发布于 前端
14