永发信息网

为什么React.js这么火

答案:1  悬赏:10  手机版
解决时间 2021-03-04 11:05
为什么React.js这么火
最佳答案
Angular和React不属于同一类的东西,Angular是一个框架,而React更多是负责UI视图部分,大家普遍认为React是MVC中的V。
那么到底为什么React.js一下子就火起来了呢?个人觉得可能主要是因为以下几个因素所导致的:
单向数据绑定
就在满世界夸赞双向Data Binding好的时候,React说我默认只支持单向数据流,因为在冯诺依曼体系中,数据就是单向流动的。这么一来,小伙伴们都震惊了,纷纷去Google双向和单向数据绑定的区别。单向绑定确实相比之下要更加轻,但事实上呢,双向绑定的需求也确实是存在的,比如:用户填写表单的时候,填写的值就需要更新到Model中,所以,React其实也有通过addon React Link来提供这个功能。只是他默认是不支持双向数据绑定的。
虚拟DOM
关于虚拟DOM的好坏,业界众说纷纭,这里不做评价。但单从这个概念本身起码让大家觉得是个新东西。所谓虚拟DOM就是说,在React中如下这段代码:
1
React.render(
2
<div className="commentBox">
3
Hello, world! I am a CommentBox.
4
</div>
5
);
这里的div其实和DOM中的div完全是两码事儿了,只不过React提供了和DOM类似的Tag和API,事实上React会通过他自己的逻辑去转化为真正的DOM。所以,把这种重做虚拟DOM。
那么这样做有什么好处呢?最明显的一点好处就是React所谓的dom diff,能够实现delta级别的dom更新。当有数据变动导致DOM变动时,React不是全局刷新,而是通过它内部的dom diff算法计算出不同点,然后以最小粒度进行更新。这也是React号称性能好的原因。
其次,还有一点非常好的地方就在于,有了虚拟DOM就可以让UI脱离设备,换句话说,只要有对应的转化关系,如:虚拟DOM -> 浏览器DOM,就能进行渲染。React Native就是一个很好的例子,它把虚拟DOM转化为Native UI组件,这样理论上就解决了DOM在移动端性能的问题。当然,缺点也是有的,比如:就无法和已有的原生DOM组件进行兼容。
JSX
JSX其实本质上是一种新的语言,只不过它设计成JavaScript一种扩展,所以,其语法绝大部分都和JavaScript一样。而同时它搭配一个JSX Transform的工具可以将JSX编译为原生的JavaScript。
那么这样做好处是什么呢?当然了,首要任务就是让你写代码方便点,否则想想每次都要React.createElement也是醉了!
其次呢,另一个好处就是它可以让你书写ES6之类的语法,就和CoffeeScript是一个道理,最终它会翻译到浏览器兼容的语法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
could2能设置声卡吗
丽晶佳苑地址在什么地方,想过去办事
玉米体细胞中含有20条染色体,当姐妹染色单体
浙江祺成苗木园地址有知道的么?有点事想过去
电视机是澳柯玛品牌的,没有USB接口,怎样播
下图是人体细胞中三种重要的大分子有机物B、G
枕头为什么不能放柜子里
克兰斯家居顶在什么地方啊,我要过去处理事情
自20世纪90年代初,浙江温州的一些瓜农到海南
丰田卡罗拉双擎多少钱
牛的什么部位煲汤比较好
哪里连光明都没有,,,地方环境很差!!!
林西县新林镇毡铺村卫生室在哪里啊,我有事要
顺丰711便利店寄快递多久到?
中兴Q529T支持联通4G吗?
推荐资讯
【bbaa4】对角线行列式求解!a1bbbba2bbbba3bb
以(Thewaytokeephealthy)为题写一篇英语短文
《从百草园到三味书屋》中的“我”的所见、所
该患儿可能的诊断是A.大脑发育不全B.营养性缺
天美婚庆总店在哪里啊,我有事要去这个地方
“十一五”规划将是一个全面贯彻落实科学发展
绩可以组什么词?
两船相对开出,甲每小时行64海里,乙每小时行36
已有全日制用工的可否兼职非全日制用工
正好我和老公在闹离婚,这样有什么寓意吗
《365夜故事》中有哪些故事?
老婆不让同床是怎么回事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?