【REACT NATIVE 系列教程之三】函数绑定与FLEXBOX是用好REACT的基础

简介:

Himi在写React 时主要遇到两个知识点觉得很有必要跟大家一起回顾下。

  1. 函数绑定

  2. FlexBox 布局

   一:函数绑定

首先来看一段代码片段:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

constructor(props) {

      super(props);

      this.state = {

         myName:'I am MyName!',

      };

  }

componentWillMount() {

    this.state.myName='cwm';

  }

  

  testFun1(){

    this.state.myName='tf1';

    Alert.alert('Himi', ' testFun1 ');

    

  }

  testFun2(){

    Alert.alert('Himi', ' testFun2 ');

  }

在state中声明了myName

constructor: 组件的构造函数

componentWillMount : 组件预加载前调用的生命周期函数

testFun1、 testFun2 :是两个自定义的函数。

 

继续看render中的一段:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<TouchableHighlight

          underlayColor='#4169e1'

          onPress={this.testFun1}  

          >

            <Image

            source={require('./res/himi.png')}

            style={{width: 70, height: 70}}

            />

        </TouchableHighlight>

 

        <TouchableHighlight

          underlayColor='#4169e1'

          onPress={this.testFun2}  

          >

            <Image

            source={require('./res/himi.png')}

            style={{width: 70, height: 70}}

            />

        </TouchableHighlight>

这里创建了两个图片组件且都添加了触摸组件,分别绑定自定义的函数testFun1 与 testFun2

 

当我们点击第一个图片时会报错,运行效果如下:(点击查看动态图)

user10    QQ20160512-0

错误是说this没有undefined,原因是因为当想在自定义的函数中使用this,那么需要进行函数绑定。

函数绑定: 函数进行 bind(绑定) 可以确保在函数中的 this 作为组件实例的引用,也就是说你想在自定义的函数中使用this,那么请先进行将此函数bind(this)

那么细心的童鞋会发现!为什么在 componentWillMount 函数中也使用了this却通过了?因为 componentWillMount 是组件的生命周期函数。

那么常用的函数绑定方式有如下几种:

1.  在生命周期函数中绑定,如下:

1

this.testFun1 = this.testFun1.bind(this)

 

2. 使用的地方直接绑定,如下:

1

onPress={this.testFun1.bind(this)}

 

3. 直接在使用的地方直接lambda,更方便  如下:

JavaScript

1

2

3

4

onPress={()=>{

     this.state.myName='tf1';

     Alert.alert('Himi', ' testFun1 ');

}}

 

   一:FlexBox 布局

关于CSS 的FlexBox 本篇不重新赘述了,一来是因为网上一搜一大把的教程,二来不一定有别人写的仔细 – -… 。但是,Himi这里推荐两个链接,学习足以:

1. 详细介绍与分析:  http://www.tuicool.com/articles/vQn6ZrU

2. 直观的教程:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/1773137,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
开发框架 前端开发 JavaScript
探索前端开发中的跨平台框架React Native
本文将介绍前端开发中一种备受关注的跨平台框架React Native,通过比较原生应用与React Native的优缺点,探讨其在实际项目中的应用以及未来发展趋势。
|
2月前
|
开发框架 前端开发 JavaScript
从零开始学习React Native开发
React Native是一种基于React框架的移动端开发框架,使用它可以快速地构建出高性能、原生的移动应用。本文将从零开始,介绍React Native的基础知识和开发流程,帮助读者快速入门React Native开发,并实现一个简单的ToDo应用程序。
|
3月前
|
前端开发 JavaScript Android开发
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
|
2月前
|
存储 前端开发 JavaScript
从零开始学习React Native开发
【2月更文挑战第1天】React Native是一种跨平台的移动应用程序框架,可以使用JavaScript和React来构建Android和iOS应用程序。本文将带您从零开始学习React Native开发,涵盖了基础知识、组件、样式、布局、API等方面。
|
2月前
|
前端开发 IDE 小程序
【社区每周】React Native 初探;应用中支持添加应用管理员(2月第一期)
【社区每周】React Native 初探;应用中支持添加应用管理员(2月第一期)
34 0
|
3月前
|
移动开发 前端开发 JavaScript
探究移动端混合开发技术:React Native、Weex、Flutter的比较与选择
移动端混合开发技术在移动应用开发领域日益流行,为开发者提供了更高效的跨平台开发方案。本文将比较三种主流混合开发技术:React Native、Weex和Flutter,从性能、生态系统和开发体验等方面进行评估,以帮助开发者在选择适合自己项目的技术时做出明智的决策。
|
3月前
|
移动开发 前端开发 weex
React Native、Weex、Flutter 混合开发技术的比较与选择
移动应用已经成为人们日常生活中不可或缺的一部分,而混合开发技术也随之崛起并逐渐成为主流。本文将比较 React Native、Weex 和 Flutter 三种混合开发技术,并探讨它们各自的优缺点,以及如何根据项目需求做出选择。
48 1
|
前端开发 JavaScript C语言
React Native之函数作为参数传递给另外一个函数去调用
React Native之函数作为参数传递给另外一个函数去调用
180 0
|
3月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
83 0
|
3月前
|
资源调度 前端开发 JavaScript
React 的antd-mobile 组件库,嵌套路由
React 的antd-mobile 组件库,嵌套路由
40 0