摘要: key值性能优化,diff算法节点比对,因为vue是虚拟DOM,更新DOM时用diff算法节点进行一一比对,比如有很多li元素,要在某个位置插入一个元素,但是li没有加key值,那么进行运算,将所有li元素重新渲染一边,但如果有key 那么就会对照key 比对li元素,,插入即可。不需要对其他元素进 阅读全文
posted @ 2022-06-09 11:12 ajaXJson 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 回流:当一个元素的位置、尺寸等发生改变的时候,浏览器需要重新计算该元素的几何属性并且摆放到正确的位置的过程叫做回流。一般像页面初次渲染,带有动画的元素,添加/删除功能,图片放大缩小,浏览器窗口发生改变的时候都会触发回流 重绘:当一个元素的外观、样式发生改变而布局不会改变,重新绘制的过程叫做重绘。 回 阅读全文
posted @ 2022-06-09 11:11 ajaXJson 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 1.URL解析:判断是搜索内容还是请求URL2.查找本地缓存:如果有缓存直接返回给页面,没有缓存则进入网络请求阶段3.DNS解析4.通过3次握手建立TCP连接5.合成请求头信息,发送http请求6.处理响应信息7.通过四次握手释放TCP连接8.如果响应状态码301,则重定向9.浏览器进行页面渲染 1 阅读全文
posted @ 2022-06-09 11:10 ajaXJson 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 因为localStorage只能长久保存整个网站上的数据,保存的数据没有过期时间,直到手动删除。1.惰性删除:键值对过期后不会立马删除,下次使用时检查到过期才得到删除。2.定时删除:每隔一段时间执行一次删除操作。 阅读全文
posted @ 2022-06-09 11:10 ajaXJson 阅读(124) 评论(0) 推荐(0) 编辑
摘要: vue中更新dom是异步操作,在修改完数据后,视图不会立刻更新,而是当同一事件循环中的所有数据变化完成之后,再进行统一的更新,所以有的时候在修改完数据后想要获取更新后的dom,则需要在nextTick中获取,nextTick的作用就是在当前渲染完成后执行,解决了异步获取不到更新后dom问题,本质是反 阅读全文
posted @ 2022-06-09 11:09 ajaXJson 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1.创建一个空对象 2.将新对象的__proto__指向构造函数的prototype(原型对象) 3.将此对象作为this的上下文4.判断是否有返回值,如果有则返回此对象,如果没有则返回this 阅读全文
posted @ 2022-06-09 11:09 ajaXJson 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1、keep-alive是vue的内置组件,能在组件切换过程中将状态保留在内存中,相当于缓存,防止DOM的重复渲染;2、keep-alive有三个属性:include(只有名字匹配的才会被缓存)、exclude(任何名字匹配的都不会被缓存)、max(最多可以缓存多少个组件)。3、在路由router的 阅读全文
posted @ 2022-06-09 11:08 ajaXJson 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1.左右浮动 设置宽高 宽度自适应2.bfc 左右浮动 中间overflow:hidden3.flex布局 父元素设置flex 中间元素设置flex-grow:1 阅读全文
posted @ 2022-06-09 11:06 ajaXJson 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 有两种机制:1、标记清除:对所有活动对象进行标记,清除阶段会将没有标记的对象清除;标记整理算法:标记结束后,算法将活动对象压入内存一端,则需要清理的对象在边界,直接被清理掉就行。(效率低) 2、引用计数:将对象是否不再需要简化定义为有没有其他对象引用它,如果没有引用指向这个对象,则会被垃圾回收机制回 阅读全文
posted @ 2022-06-09 11:06 ajaXJson 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 框架会将所有的结点先转化为虚拟节点VNode,在发生改变后将VNode和原本页面的OldNode进行对比,然后以VNode为基准,在oldNode上进行准确的修改。(修改准则:原本没有新版有,则增加,原本有新版没有,则删除,都有则进行比较,都为文本节点则替换掉,都为静态资源不处理,都为正常节点则替换 阅读全文
posted @ 2022-06-09 11:05 ajaXJson 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 相同点:1.都能遍历数组2.中途不能被break打断3.函数中都有三个参数(当前遍历的元素,当前元素的索引,原数组) 不同点:1.forEach没有返回值,也就是返回undefined,map会开辟新的一个内存空间,返回新的数组2.map的效率比forEach高 阅读全文
posted @ 2022-06-09 11:05 ajaXJson 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 1.history和hash都是利用浏览器的2种特性实现前端路由,history是利用浏览器历史记录栈的API实现,hash是监听location hash值变化事件来实现,2history的url没有#号,hash有#号3.相同的url,history会触发添加到浏览器历史栈中,hash不会,hi 阅读全文
posted @ 2022-06-09 11:04 ajaXJson 阅读(197) 评论(0) 推荐(0) 编辑
摘要: var a ='w'let obj = { a:'o', print:function(){ console.log(this.a) }, print2:()=>{ console.log(this.a) }}let p = obj.print;let p2 = obj.print2;obj.pri 阅读全文
posted @ 2022-06-09 10:58 ajaXJson 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 改变 push()pop()shift()unshift()splice()sort()reverse()forEach() 不改变 filter()concat()slice()map() 阅读全文
posted @ 2022-06-09 10:57 ajaXJson 阅读(15) 评论(0) 推荐(0) 编辑
摘要: bind改变this指向不直接调用执行,call和apply改变this指向直接调用 apply传入的是数组 阅读全文
posted @ 2022-06-09 10:56 ajaXJson 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 1.async await 2.setTimeout 3.promise 4.回调函数 阅读全文
posted @ 2022-06-09 10:55 ajaXJson 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 原理 Vue采用数据劫持结合发布者-订阅者模式的方法来实现数据的响应式, 通过object.defineProperty来劫持数据的getter和setter 缺陷:无法对新添加或删除的属性进行监听、无法监听数组的变化。 阅读全文
posted @ 2022-06-09 10:55 ajaXJson 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 箭头函数没有this,this从外部获取,不能使用new,没有arguments 阅读全文
posted @ 2022-06-09 10:55 ajaXJson 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Block Formatting Context(块级格式化上下文) 1.每一个BFC区域只包括其子元素,不包括其子元素的子元素 2.每一个BFC区域都是独立隔绝的,互不影响。 3.触发BFC的条件 body根元素 弹性布局flex position定位 absolute,fixed 单元格tabl 阅读全文
posted @ 2022-06-09 10:54 ajaXJson 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 一、Vue 和 jQuery 对比 jquery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。 二、Vue 则是通过Vue对象将数据和View完全分离开来了。对数据进行操作不再需要引用相应的 阅读全文
posted @ 2022-06-09 10:50 ajaXJson 阅读(110) 评论(0) 推荐(0) 编辑