JavaScript 是什么?
JavaScript是一种运行在浏览器中的解释型的编程语言,作用是使网页具备与访问者互动的能力。
Javascript语言实际上是两种语言(java、Scheme)风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。
React 是什么?
React是Facebook开发的一款JS库。React一般被用来作为MVC中的V层,它不依赖其他任何的库,因此开发中,可以与任何其他的库集成使用,包括Jquery、Backbone等。它可以在浏览器端运行,也可以通过nodejs在服务端渲染。
React的语法是jsx,通过使用这种语法,可以在react代码中直接混合使用js和html来编写代码,这样代码的逻辑就非常清晰,当然也意味着,需要将jsx代码编译成普通的javascript代码,才能在浏览器中运行,这个过程根据实际项目情况,可以选择多种不同的思路,或者在服务器端通过webpack进行编译。
React Native 是什么?
React Native 是一个使用React和应用平台的原生功能来构建 Android 和 iOS 应用的开源框架。
通过 React Native,您可以使用 JavaScript 来访问移动平台的 API,以及使用 React 组件来描述 UI 的外观和行为:一系列可重用、可嵌套的代码。
DOM 是什么?
DOM意思是文档对象模型(Dcoument Object Model),它是一个结构化文本的抽象。对于Web开发者,这个文本是一段HTML代码,DOM也就被叫做HTML DOM。HTML的元素在DOM中变成了节点。
所以,HTML是一段文本,DOM就是这段文本在内存中的表示。
虚拟DOM 是什么?
首先 - 虚拟DOM不是React发明的,但是React用了它且免费提供。
虚拟DOM是HTML DOM的抽象。它是轻量的,是从浏览器特定(Browser-specific,这里意指特定的浏览器需要特定的实现)实现细节中提取出来的。
由于DOM本身就已经是一个抽象了,所以虚拟DOM,实际上,是一个抽象的抽象。
也许把虚拟DOM当做React的本地和简化版的HTML DOM更好。它允许React跳过既慢又限于特定浏览器的真实DOM操作,以在这个抽象世界中做自己的计算。
常规DOM和虚拟DOM二者并没有什么大的不同。这也是为什么React代码的JSX部分可以看起来几乎跟纯HTML很像的原因。
参考:
/blog//06/birth_of_javascript.html
/wiki/1022910821149312
/p/163bfc500549
/docs/intro-react-native-components
https://oychao.github.io//03/08/react/12_vitual_dom/