Heim > Fragen und Antworten > Hauptteil
刚刚看到http://davidchang.github.io/ngReact/
将Reactjs和Angularjs整合起来。使用Reactjs来实现Angularjs的指令部分,只负责渲染。
怎么看待这种组合?
有什么益处?弊端?
我想大声告诉你2017-05-15 16:52:29
我对react不了解,不过倒是可以尝试解释下:
由于angular的自动脏检查机制,angular的渲染非常耗时,它的脏检查是将dom元素中的所有ngBind元素记录下来,然后在每次$digest循环时判断变化,做内容替换。这有一个问题就是如果页面中数据太多,操纵的DOM元素就越多,效率也就越低,因此angular有一个2000的ngRepeat上限。
react由于没有模板,都是js做渲染,在内存中做运算,而不是直接操控dom,这会非常快,所以两者结合后在UI渲染上会有一个量级的提升,这对于大数量的数据呈现会有很大帮助。
至于缺点,我不喜欢react算不? angular的模板是一个很大的优势,所见即所得,所有的都是指令,它依然是html;相反react将html写成component的方式我觉得优化和维护成本太高,es7开始会有Object.observe功能了,到时候ng的效率会有一个大的提升。
我不了解的地方:两者结合之后,如何做DOM事件处理?如何继续做双向数据绑定?如果不需要双向数据绑定,其实angular从1.3开始内置了一次性绑定的语法:{{ ::expression }},这会很大缓解双向数据绑定效率低下问题,欢迎指正。