• RN 初始化项目


    RN

    • 初始化项目
    react-native init SampleApp
    

    这个命令会初始化一个工程、下载 React Native 的所有源代码和依赖包,最后在SampleAppMovies/iOS/SampleAppMovies.xcodeproj和SampleAppMovies/android/app下分别创建一个新的 XCode 工程(iOS)和一个 gradle 工程(Android)。

    • Flexbox布局

    我们在 React Native 中使用 flexbox 规则来指定某个组件的子元素的布局。Flexbox 可以在不同屏幕尺寸上提供一致的布局结构。

    一般来说,使用flexDirection、alignItems和 justifyContent三个样式属性就已经能满足大多数布局需求。

    React Native 中的 Flexbox 的工作原理和 web 上的 CSS 基本一致,当然也存在少许差异。首先是默认值不同:flexDirection的默认值是column而不是row,而flex也只能指定一个数字值。

    flexDirection: 'row'来让我们的主容器的成员从左到右横向布局,而非默认的从上到下纵向布局。

    • Flex

    flex 属性决定元素在主轴上如何填满可用区域。整个区域会根据每个元素设置的flex属性值被分割成多个部分。

    Flex Direction

    在组件的style中指定flexDirection可以决定布局的主轴。子元素是应该沿着水平轴(row)方向排列,还是沿着竖直轴(column)方向排列呢?默认值是竖直轴(column)方向。

    Justify Content

    在组件的 style 中指定justifyContent可以决定其子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end、space-around、space-between以及space-evenly。

    Align Items

    在组件的 style 中指定alignItems可以决定其子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式。子元素是应该靠近次轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end以及stretch。

    constructor(props) {
        super(props);   //这一句不能省略,照抄即可
        this.state = {
          movies: null,  //这里放你自己定义的state变量及初始值
        };
        // 在ES6中,如果在自定义的函数里使用了this关键字,则需要对其进行“绑定”操作,否则this的指向不对
        // 像下面这行代码一样,在constructor中使用bind是其中一种做法(还有一些其他做法,如使用箭头函数等)
        this.fetchData = this.fetchData.bind(this);
      }

    componentDidMount是 React 组件的一个生命周期方法,它会在组件刚加载完成的时候调用一次,以后不会再被调用

      componentDidMount() {
        this.fetchData();
      }
     fetchData() {
        fetch(REQUEST_URL)
          .then((response) => response.json())
          .then((responseData) => {
            // 注意,这里使用了this关键字,为了保证this在调用时仍然指向当前组件,我们需要对其进行“绑定”操作
            this.setState({
              movies: responseData.movies,
            });
          });
      }
     render() {
        if (!this.state.loaded) {
          return this.renderLoadingView();
        }
    
        return (
          <FlatList
            data={this.state.data}
            renderItem={this.renderMovie}
            style={styles.list}
            keyExtractor={item => item.id}
          />
        );
      }

    keyExtractor 此函数用于为给定的item生成一个不重复的key。Key的作用是使React能够区分同类元素的不同个体,以便在刷新时能够确定其变化的位置,减少重新渲染的开销。若不指定此函数,则默认抽取item.key作为key值。若item.key也不存在,则使用数组下标。

  • 相关阅读:
    iOS下JS与OC互相调用(一)--UIWebView 拦截URL
    【转】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
    Spring MVC的一些学习笔记-入门配置和HttpMessageConverter
    xrdp 安装后 WINDOWS远程登录出错
    树莓派(raspberry pi)更改键盘布局
    说说qwerty、dvorak、colemak三种键盘布局
    手机就能申请摇号 杭州市小客车摇号功能全新上线
    几种你不知道的获取浙A牌照的方法
    【转】则表达式匹配居民身份证
    机房收费系统之—如何查询两个日期之间的数据
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/12686279.html
Copyright © 2020-2023  润新知