1, React和Vue的区别(对比)?
组件化方面
1.什么是模块化:
是从代码的角度来进行分析的;把一些可复用的代码,抽离为单个的模块;便于项目的维护和开发;
2.什么是组件化:
是从UI界面的角度 来进行分析的;把一些可复用的UI元素,抽离为单独的组件;便于项目的维护和开发;
3.组件化的好处:
随着项目规模的增大,手里的组件越来越多;很方便就能把现有的组件,拼接为一个完整的页面;
4.Vue是如何实现组件化的:
通过.vue文件,来创建对应的组件;
template 结构
script 行为
style 样式
5.React如何实现状态化:
React中有组件化的概念,但是,并没有像vue这样的组件模板文件;React
中,一切都是以JS来表现的;因此要学习React,JS要合格;ES6和ES7要会用;
移动APP开发体验方面
Vue,结合Weex这门技术,提供了迁移到移动端App开发的体验(Weex,目前只是一个小的玩具,并没有很成功的大案例;)
React,结合ReactNative,也提供了无缝迁移到移动App的开发体验;
React中几个核心的概念
虚拟DOM
DOM的本质:浏览器中的概念,用JS对象来表示页面上的元素,并提供了操作DOM对象的API;
什么是React中的虚拟DOM:用JS对象来模拟页面上的DOM和DOM嵌套;
虚拟DOM的目的:为了实现页面中,DOM元素的高效更新;
Diff算法
tree diff;
新旧两颗DOM树,逐层对比的过程,就是Tree Diff;当整颗DOM逐层对比完毕,则所有需要被按需更新的元素,必须能够找到;
component diff;
在进行Tree Diff的时候,每一层中,组件级别的对比,叫做Component Diff;
如果对比前后,组件的类型相同,则暂时认为此组件不需要被更新;
如果对比前后,组件的类型不同,则需要移除旧组件,创建新组件,并追加到页面上;
element diff;
在进行组件对比的时候,如果两个组件类型相同,则需要进行 元素级别的对比,这叫做Element Diff;