前面我介绍过几个常用的内置组件的使用方法,对于一些较为复杂的需求可能需要写自定义组件来满足,但是有些时候第三方库的组件可以完美的满足相应的需求,没必要自己去实现一套,这时我们不妨利用现有的轮子,方便快捷,省时省事。 首先介绍引入第三方组件的方法。

Read More

目前大多数app都有网络请求的需求,有时需要往服务器提交数据,有时需要获取服务端的数据。react native提供ajax和fetch的网络请求的方式,ajax即XMLHttpRequest (XHR),是一种传统的网络请求的方式,其配置和调用方式比较混乱,不符合职责分离的原则,基于事件的异步模型的写法,没有采用Promise的fetch简洁。因此本文重点介绍fetch进行网络请求的用法, 关于ajax只介绍其基本使用方法。

Read More

每个组件都有自己的生命周期,在其生命周期内,组件经历了初始化-运行-销毁的过程。在运行阶段,每次状态(state)或属性(props)发生变化时,都有对应的组件方法将该变化通知给组件进行渲染刷新(关于state和props的介绍可以看上一节react native学习笔记6——Props和State)。下图是经典的组件生命周期图解(ES6),该图显示了组件在生命周期的各个时期系统调用的方法。

Read More

目标

基础知识的学习只有在实践中使用才更容易被理解与吸收,前面几节都是在介绍基本的属性概念,我自己是一个比较健忘的人,我估计很多人也跟我一样在学了基本概念后过不了多久就忘了,或者只是有个印象却不知道该怎么用该在何处运用这些特性。 本节我们将运用前面所介绍的基本概念,进行布局实战,实现如下效果:

Read More

FlexBox

React Native是采用FlexBox(弹性)布局,使用FlexBox规则来指定某个组件的子元素的布局,FlexBox提供了在不同尺寸设备上都能保持一致的布局方式,它是CSS3弹性框布局规范,因此熟悉前端的同学可能对此感到很亲切,不过React Native的FlexBox与web上的CSS也存在少许差异。

Read More

相信配置好rn环境的朋友,在初始化好第一个项目AwesomeProject后会忍不住尝试动手改一改、试一试。下面还是遵循古老传统从hello world开始表演,可以在最初搭建好环境时新建的第一个项目AwesomeProject的基础上,用下面的代码覆盖你的index.ios.js或是index.android.js 文件(在项目的根目录下),然后运行看看。

Read More

xml视图少嵌套

App上每个视图显示在屏幕上需要经过三个步骤:测量、布局和渲染。 App在绘制一个xml布局时:从顶部节点开始测量,然后根据布局树逐个渲染:测量每个视图在屏幕上的尺寸。每个视图都会向父视图提供尺寸,好让父视图确定摆放的位置。如果父视图发现它的尺寸测量有问题(或者是子视图的尺寸不对),它可以强制每个子视图(或者子视图的子视图)重新测量以解决问题(有可能增加一两倍的测量时间)。这就是设计一个少嵌套的视图树的价值所在。视图树的层级越多,嵌套测量的次数越多,测量计算时间就会越长(特别是需要重新测量的时候)。

Read More

初衷

本文适用于跟我一样的前端小白,却又想搭建一个属于自己的博客站点玩玩,可以自己DIY样式,构建属于自己的网站,但又不想花费太多精力维护。在搭建博客之前我也百度找了很多教程,网上的教程五花八门,但对于想完整的从无到有,让一个前端小白,从零开始搭建一个自己看着觉得样式还不错的博客站点,这样的文章比较少。本人写下此文仅记录自己用Github Pages 搭建博客的过程,及帮助后面的朋友们少绕点弯路。其中有些大师写的教程比较好,这里就直接引用了。

Read More