一、什么是虚拟DOM;二、为什么要用虚拟DOM三、虚拟DOM真的比真实DOM性能好吗四、说说你对JSON的理解五、说说你对浅拷贝和深拷贝的理解,及各自常见的实现方式

一、什么是虚拟DOM?

虚拟DOM:用普通js对象来描述DOM结构,因为不是真实DOM,所以称之为虚拟DOM。

二、为什么要用虚拟DOM?

因为普通改变页面样式只能遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新的目的。
 这种方式相当消耗计算资源,因为每次查询 dom 几乎都需要遍历整颗 dom 树,如果建立一个与 dom 树对应的虚拟 dom 对象( js 对象),以对象嵌套的方式来表示 dom 树及其层级结构,那么每次 dom 的更改就变成了对 js 对象的属性的增删改查,这样一来查找 js 对象的属性变化要比查询 dom 树的性能开销小。
虚拟 DOM 引入最大的好处就是:
1. 组件的高度抽象化
2. 可以更好的实现 SSR,同构渲染等
3. 框架跨平台

三、虚拟DOM真的比真实DOM性能好吗

`

如果是首次渲染,虚拟Dom不具有任何优势,甚至它要进行更多的计算,消耗更多的内存。 虚拟Dom的优势在于React的Diff算法和批处理策略,React在页面更新之前,提前计算好了如何进行更新和渲染DOM。 所以,虚拟Dom帮助我们提高了开发效率,而不是一定要去比普通DOM快
虚拟dom的优势如下:
简单方便,如果使用手动操作真实dom完成页面,繁琐并容易出错,在大规模应用下维护起来也很困难。
性能方面,使用virtualDom能够有效避免真实dom树的频繁更新,减少重绘和回流提高性能。
跨平台,react借助虚拟dom带来了跨平台的能力,一套代码多端运行。
缺点:是因为首次渲染大量dom,由于多一层虚拟dom计算,速度比正常稍慢。

四、说说你对JSON的理解

JSON 是轻量级的文本数据交换格式,JSON 使用 Javascript语法来描述数据对象,支持多种语言,并且具有自我描述性,更易理解.
JSON 非常适合ajax 因为是它使 JavaScript 对象和字符串值之间得以快速转换 JSON是一种传递对象的语法,同时parse将符合json标准的字符串转化为js对象

五、说说你对浅拷贝和深拷贝的理解,及各自常见的实现方式

浅拷贝:

将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用

Object.assign 
 扩展运算符  
Array.prototype.concat  
Array.prototype.slice  
使用第三方库&手动实现

深拷贝:

不管原数据中值是什么类型的数据,拷贝后的新数据跟原数据是相互独立,没有关联的实现方法
1.利用json数据和json字符串之间的转换 
2.$.extend()  
3.递归
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值