上一页 1 2 3 4 5 6 7 ··· 23 下一页
摘要: 如何监听 pushState 和 replaceState 的变化呢? 利用自定义事件new Event()创建这两个事件,并全局监听: <body> <button onclick="goPage2()">去page2</button> <div>Page1</div> <script> let 阅读全文
posted @ 2023-02-23 17:55 bb_xiaxia1998 阅读(52) 评论(0) 推荐(0)
摘要: 最近面试总是会被问到这么一个问题:在使用vue的时候,将for循环中声明的变量i从1增加到100,然后将i展示到页面上,页面上的i是从1跳到100,还是会怎样?答案当然是只会显示100,并不会有跳转的过程。 怎么可以让页面上有从1到100显示的过程呢,就是用setTimeout或者Promise.t 阅读全文
posted @ 2023-02-23 17:54 bb_xiaxia1998 阅读(24) 评论(0) 推荐(0)
摘要: 双向数据绑定的原理 Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤: 需要observe的数据对象进行递归遍历,包括子属性对 阅读全文
posted @ 2023-02-23 17:53 bb_xiaxia1998 阅读(321) 评论(0) 推荐(0)
摘要: 组件化是 Vue, React 等这些框架的一个核心思想,通过把页面拆成一个个高内聚、低耦合的组件,可以极大程度提高我们的代码复用度,同时也使得项目更加易于维护。所以,本文就来分析下组件的渲染流程。我们通过下面这个例子来进行分析: <div id="demo"> <comp></comp> </di 阅读全文
posted @ 2023-02-23 17:52 bb_xiaxia1998 阅读(19) 评论(0) 推荐(0)
摘要: 使用 Object.defineProperty() 来进行数据劫持有什么缺点? 在对一些属性进行操作时,使用这种方法无法拦截,比如通过下标方式修改数组数据或者给对象新增属性,这都不能触发组件的重新渲染,因为 Object.defineProperty 不能拦截到这些操作。更精确的来说,对于数组而言 阅读全文
posted @ 2023-02-21 10:23 bb_xiaxia1998 阅读(383) 评论(0) 推荐(0)
摘要: 写在前面 在前端中,主要涉及的基本上就是 DOM的相关操作 和 JS,我们都知道 DOM 操作是比较耗时的,那么在我们写前端相关代码的时候,如何减少不必要的 DOM 操作便成了前端优化的重要内容。 虚拟DOM(virtual DOM) 在 jQuery 时代,基本上所有的 DOM 相关的操作都是由我 阅读全文
posted @ 2023-02-21 10:22 bb_xiaxia1998 阅读(33) 评论(0) 推荐(0)
摘要: DIFF算法的原理 在新老虚拟DOM对比时: 首先,对比节点本身,判断是否为同一节点,如果不为相同节点,则删除该节点重新创建节点进行替换 如果为相同节点,进行patchVnode,判断如何对该节点的子节点进行处理,先判断一方有子节点一方没有子节点的情况(如果新的children没有子节点,将旧的子节 阅读全文
posted @ 2023-02-21 10:22 bb_xiaxia1998 阅读(65) 评论(0) 推荐(0)
摘要: 什么是数据劫持? 定义: 数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。 简单地说,就是当我们 触发函数的时候 动一些手脚做点我们自己想做的事情,也就是所谓的 "劫持"操作 数据劫持的两种方案: Object.defineProperty 阅读全文
posted @ 2023-02-21 10:20 bb_xiaxia1998 阅读(53) 评论(0) 推荐(0)
摘要: Vue 组件间通信有哪几种方式? Vue 组件间通信是面试常考的知识点之一,这题有点类似于开放题,你回答出越多方法当然越加分,表明你对 Vue 掌握的越熟练。Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面我们分别介绍每种通信方式且会说明此种方法可适用于哪类组 阅读全文
posted @ 2023-02-20 11:40 bb_xiaxia1998 阅读(46) 评论(0) 推荐(0)
摘要: 我们在开发Vue项目时候都知道,在vue开发中某些问题如果前期忽略掉,当时不会出现明显的效果,但是越向后开发越难做,而且项目做久了就会出现问题,这就是所说的蝴蝶效应,这样后期的维护成本会非常高,并且项目上线后还会影响用户体验,也会出现加载慢等一系列的性能问题,下面举一个简单的例子。 举个简单的例子 阅读全文
posted @ 2023-02-20 11:39 bb_xiaxia1998 阅读(35) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 23 下一页