React Native入门

从ios转战rn,从3月份到7月份,学习笔记。

层级关系,学习过程

Javascript

推荐比较好的学习网站,没事的时候去溜达溜达。

@廖雪峰的Javascript

@W3School学习Javascript

ReactJS

ReactJS是facebook推出的一种框架。
主要的是解决复杂或频繁的DOM操作。
ReactJS是创建一种虚拟DOM的方式,diff算法,每当有更新时,计算渲染的组件,避免不必要其他组件的渲染。

ReactNative

并不是webView的实现。

React是一种思想,Facebook对于Web Components的理解与实现.

React native 是用React的方式开发mobileApp。

结构图

React Native入门_第1张图片
reactjs.png

生命周期

React Native入门_第2张图片
component.jpg

生命周期大体可以分为三部分:

  • MOUNTING
  • RECEIVE_PROPS
  • UNMOUNTING

getDefaultProps 方法只执行一次,这样所有实例初始化的 props 将会被共享。

React刷新页面

  • props

props就是组件的属性,由外部通过 JSX 属性传入设置

  • state

state 是组件的当前状态, 根据状态 state 呈现不同的 UI 展示

pure render:无状态组件非常简单,开销很低,如果可能的话尽量使用无状态组件

{
    const HelloMessage = (props) =>  Hello ${props.name}"
}

React常用的组件库

Immutable

  • JavaScript 中的对象一般是可变的(Mutable),当应用复杂后,这就造成了非常大的隐患
  • Immutable就是解决这种问题,将数据进行解耦,只有oldState => newState,不会在老的数据上面做修改,会生成新的数据。
  • 一定程度上实现了MVVM的设计思想。
  • List->Array, Map->Object

Redux

如果数据量很庞大,业务量很复杂的时候,依靠props来传递数据就显得有些复杂和难以维护,于是就有了redux和flux。

  • State
  • Reducer
  • Action
  • Store

redux默认只会在程序中存在一个store,这与flux的最大不同之处,store里面存储了所有的state,state存储了所有用到的数据,通过action的状态改变,在reducer里面做出相应的数据转变和传输。

通过依靠connect的方法,将store中的state以props的方式传递到component中去。

Immutable与Redux的结合使用

immutable与redux相辅相成,可以在redux的state中将数据用immutable封装起来,防止数据出现变动。
每一个redux中action的改变,触发reducer中的数据转变。也只有在reducer中才可以进行state的数据转变,保证了数据的不可变性。

你可能感兴趣的:(React Native入门)