react和react native简单概念

react
react的本质是一个工具,用来帮助开发者操作DOM,从而构建出页面。
一个用于创建可复用,可聚合web组件的js库。
只提供前端MVC框架中的“V”,并不是完整的前端MVC框架。
DOM的全称是文档对象模型。
jqury是一个javascript库,也是帮助开发者操作DOM。

react的核心概念

响应式UI
虚拟DOM树(javascript虽快,但是更新dom很慢,每次更新时,react重建dom树,
	找到与上个版本的dom的差异,计算出最新的dom更新操作,从操作队列中批量执行dom更新操作)
	虚拟DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化的DOM操作。
组件,减少代码,增强复用性(一个独立的函数)
	自定义的组件都必须要用大些字母开头,普通的html标签都用小写字母开头。
	为事件绑定this,bind(this)
jsx(与angularjs的区别,javascript的xml的语法扩展)
	jsx:在js里面写标签。
	所谓的JSX其实就是javascript对象。

单向数据流(数据一旦更新,渲染整个app)
渲染方式:用户输入(从API获取数据)--将数据传给顶层组件--react将每个组件渲染出来。

react
react概念
创建组件
组件的嵌套
组件的状态(state)
组件的参数(props)(默认参数static defaultProps,设置参数类型propTypes: {XXX:React.PropTypes.array.isRequired})
props一旦传入,不可以在组件内部对它进行修改,可以通过父组件主动重新渲染的方式来传入新的props,从而达到更新的效果。
state的主要作用是用于组件保存,控制,修改自己的可变状态,
state在组件内部初始化,可以被组件自身修改,而外部不能访问也不能修改。
state是一个局部的,只能被组件自身控制的数据源
state中状态可以通过this.setstate方法进行更新,setstate会导致组件的重新渲染。

props的主要作用是让使用该组件的父组件可以传入参数来配置组件,它是外部传进来的配置参数,组件内部无法控制也无法修改。

react将组件渲染,并且构造DOM元素然后塞入页面的过程称之为组件的挂载。

react是在web上开发用户界面的利器。
使用react来开发UI的话,就能够描述你想要的,而不是告诉UI如何更新(响应式UI)
还可以在可重用组件中组织代码,并创建高性能用户界面而无需担心速度超慢的DOM(虚拟DOM)
react使得开发者更专注于上层业务,而不是底层DOM更新的细节。
这种开发UI的方式称之为react范式。

移动端和web端不同的地方,不同系统之间时完全不同的。
在过去,要开发原生应用的话,开发者需要学习特定的语言和平台工具链。
如果想要开发出的原生应用运行在ios和安卓两个平台的话,
需要创建两套完全分离的代码库。同样的业务逻辑需要写两遍,开发应用既困难,成本又高,
从长远来看的话维护更是如此。

react native
渲染器(render)和全新的react

对于web应用来说,react负责启用react范式(管理响应式UI、组件和虚拟DOM),以及实际更新浏览器中的DOM,当DOM是唯一需要交互的对象时,react可以轻松处理好两项任务。

对于原生应用的话,当需要管理不同平台的各种显示规则时,react创建者们将原来的react拆分成两部分,第一部分是全新的react,它负责启用react范式,第二部分叫做reactDom,它唯一的任务就是与浏览器中的dom进行交互。因为reactDom负责更新dom,而dom又决定了浏览器渲染的内容,所以将reactDom称之为渲染器。

react的官网定义是:用来开发用户界面的javascript库,它的含义有两层:首先它是UI开发的利器,其次它不涉及任何其他领域。相比于react,
react native包含更多东西:

全新的react作为核心库
ios和安卓的渲染器
将代码转换成可安装应用的工具
原生UI组件(状态栏、列表等)和动画
UI的样式和布局工具箱(flexbox)
构建大多数应用的基础部分(比如网络)
提供原生功能的部分(比如粘贴板、加速计和存储)

react native本身是一个完整的平台,它包含开发完整应用所需的一切,相比之下,原本的react只负责web UI,需要引用其他部分才能创建出一个web应用。它可以使用javascript来开发真正的原生应用,并且是用react范式。体现:学习一次,随处编写。

猜你喜欢

转载自blog.csdn.net/qq_35790269/article/details/83656338