RN笔记

Posted HelloHello233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RN笔记相关的知识,希望对你有一定的参考价值。

https://facebook.github.io/react-native/docs/using-a-listview.html

  react native类似于react,不过它使用的是原生组件,而不是web组件。也就是说不能div或span等。react native使用jsx、state、props和react native特有的东西,如原生组件

样式和布局

  样式都写在一个js对象中(create出来),采用驼峰命名。所有的核心组件都有style属性,让style指向样式对象即可。

  text组件嵌套的话,内部的text会继承外部的text样式

  使用flex进行尺寸自动伸缩,直接使用flex即可,使用flex布局不需要在父容器上加display:flex。其他像alignItems、justifyContent等flex属性可以直接使用

核心组件

  View 类似于div,块级、一般用作于无意义容器

  Text用于展示文本

  TextInput用于接收输入,类似于input,也有placehoder属性

处理输入

  在TextInput上定义onChangeText属性,接收回调函数,可以在里面进行数据校验,使用这个函数使组件称为受控组件

手势系统

  管理着app中手势的生命周期。处理手势的最佳用户实践是:1.给用户反馈(如高亮)让用户知道他们做出手势后的结果;2.处理用户的手势中断。

  Touchable:提供了一个可触摸的组件抽象,里面使用了手势系统,可以使我们方便地配置手势交互。如下几种组件:

  1. TouchableHighlight
  2. TouchableOpacity
  3. TouchableWithoutFeedback
  4. TouchableNativeFeedback

  以上四种组件都可以设置onPress、onLongPress回调,只是触摸时的样式不同而已,都需要嵌套一个text来显示按钮文字,

  一个组件要去处理手势,首先要称为responder(两个函数在事件捕获阶段执行),接着对应触摸事件的回调函数(移动、松开、开始按下、终止)就会在这个组件上执行。当一个组件成为responder,内部的组件也会成为responder。最里面的组件会最先执行 onStartShouldSetResponder and onMoveShouldSetResponder,这两个事件会冒泡上去,如果不希望子组件成为responder,也通过两个方法返回true即可

  Button组件上的onPress处理点击回调。在iosandroid上的默认样式不同,可以通过Touchable来创建自定义按钮

滚动列表

  ScrollView:内部可以嵌套不同的组件,通过属性可以配置垂直或水平滚动。数据源直接写在内部作为子组件即可。当scrollview中只有一个组件时,可以允许缩放这个组件。这个组件用于展示有限的数量较组件,因为scrollview会把所有的组件都渲染出来,就算这个组件没有显示出来,所以如果要显示比较多的组件就使用flatList

  FlatList:用于展示结构相似的,可变的组件,可以展示数量较多的组件,它仅仅展示需要显示出来的组件。数据源需要通过两个属性来指定。

  SectionList:需要把数据分区域显示,显示区域的头等。

网络

  fetch:类似于xhr。但request和response的定义更具通用性,未来可以用于service worker、cache api等。返回的promise最好加上一个catch,否则发生错误的话会被忽略,没有任何提示。

  xhr:xhr是内置的,也就是说我们可以使用axios等第三方库。在native中使用和web有一个区别,就是可以跨域,没有CORS的概念

  websocket:内置websocket。

以上是关于RN笔记的主要内容,如果未能解决你的问题,请参考以下文章

RN笔记

学习笔记:python3,代码片段(2017)

React Native技术剖析

React Native学习笔记——配置开发环境

React Native技术剖析

React Native技术剖析