本来想开发的时候,遇到什么,就查什么的,查的时候,发现挺乱的,前端的东西就是多,或者说,发展就是快。那就在开发前,先理清楚一些基本知识,对比一下它们之间的差别。
基础概念
为什么有React Native
可以参考React Native: 把现代web科技带给移动开发者,介绍了React Native的发展与目标。
React、React.js和React Native之间的区别
React是基础框架,是一套基础设计实现理念,开发者不能直接使用它来开发移动应用或者网页。
在React框架上,发展出React.js框架用来开发网页;
在React框架上,发展出React Native框架用来开发移动应用。
React.js和React Native具体区别
实现目的不同
React Js的目的是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你从操作dom中解脱出来,只需要操作数据就会改变相应的dom;
React Native的目的是希望我们能够使用前端的技术栈就可以创建出能够在不同平台运行的一个框架。可以创建出在移动端运行的app,但是性能可能比原生app差一点。
原理略有不同
ReactJs和React Native的原理是相同的,都是由js实现的虚拟dom来驱动界面view层渲染。
ReactJs是驱动html dom渲染;
React Native是驱动android/ios原生组件渲染。
编程思路会有所不同:
ReactJS直接渲染dom;
React Native是生成id,用bridge(最新用c++实现了)变成一个表,等待native去调用。基础控件/标签
ReactJS的控件为Web控件,如div、span、h1、ul等;
React Native是抽象原生控件,如View、Text、Image等。
JavaScript、ECMAScript、ES5和ES6的区别
JavaScript和ECMAScript区别
JavaScript是一门语言,和Java没有什么特别强的联系,纯属就是命名为了傍上明星Java而已。但是JavaScript是网景公司推出的,需要提交给ECMA International(欧洲计算机制造商协会),让执行标准化的公司确定新的语言标准。但是由于一定的原因,ECMA官方标准不采用JavaScript,而是采用ECMAScript,虽然我们一直采用JavaScript称呼。
那JavaScript和ECMAScript是不是就是一样呢?只是花名和正名的区别吗?
不是。因为JavaScript是一门语言,由3部分组成,就可以知道,其实ECMAScript只是其语言标准。
- ECMAScript语言标准:这个是其核心,规定了语言的各种组成部门,比如语言,语句等。
- DOM文档对象模式:DOM把整个页面映射为一个多层节点结果,这种结构有点类型Android中View的视图,也是一层一层的。
- BOM浏览器对象模式:
ES5和ES6的区别
上面说到了ECMAScript是JavaScript的语言标准,随着时间的变化,一些旧的语言标准会被遗弃,新的语言特性会不断加进来。可以类似于Java,比如推出了Java8,会比Java7新增一些特性之类的。
ES5是ECMAScript 5的简称,即是ECMAScript的第五版修订;
ES6是ECMAScript 6的简称,即是ECMAScript的第六版修改。后来ECMA修改了命名的规则,采用了年份,因为是在2015年完成新版本的标准化。所以ECMAScript 6也可以命名为ESMAScript2015(ES2015),目前称为ES6的人还是比较多。这点也可以类似Java1.8和Java8。
ES5和ES6的语言标准变化比较大,不仅仅是新增一两个新特性,具体我们在后面学习ES6的时候,边学习边比较吧!React Native开发中,都是推荐直接使用ES6进行开发了,但是平时在网上搜到的很多教程和例子都是ES5版本的,所以,我觉得,不需要去单独学习怎样用ES5编写React Native项目了,直接用ES6了。