1.在 React-Native 创建的自定义组件是可以复用的,而开发过程中一个组件可能会由多个人同时开发或者多个人使用一个组件,为了让开发人员之间减少沟通成本,我们会对某些必要的属性进行属性声明,让使用的人知道需要传入什么!甚至有些需要传入但没有传入值的属性我们会进行警告处理! 属性声明 的示例: static propTypes = { name:PropTypes.string, ID:PropTypes.number.isRequired, } 上面我们声明了 name 和 ID 两个属…
相关文章 React Native探索系列 前言 React Native可以使用多种方式来请求网络,比如fetch.XMLHttpRequest以及基于它们封装的框架,fetch可以说是替代XMLHttpRequest的产物,这一节我们就来学习fetch的基本用法. 1.get请求 fetch API是基于 Promise 设计的,因此了解Promise也是有必要的,推荐阅读MDN Promise教程 . get请求访问淘宝IP库 我们先从最基础的get请求开始,get请求的地址为淘宝IP地址…
本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-Demo 一.总览 如下图,有一个滑动的tab切换,就是用react-native-scrollable-tab-view来实现的. 二.使用react-native-scrollable-tab-view插件 1.通过npm将插件加入项目 npm install react-native-scrol…
一:原生传递参数给React Native 1:原生给React Native传参 原生给JS传数据,主要依靠属性. 通过initialProperties,这个RCTRootView的初始化函数的参数来完成. RCTRootView还有一个appProperties属性,修改这个属性,JS端会调用相应的渲染方法. 我们使用RCTRootView将React Natvie视图封装到原生组件中.RCTRootView是一个UIView容器,承载着React Native应用.同时它也提供了一个联通…
之前我们介绍了RN相关的知识: 是时候了解React Native了 从零学React Native之01创建第一个程序 从零学React Native之02状态机 本篇主要介绍页面导航 上一篇文章给大家介绍了简单界面的搭建, 这一篇我们需要两个界面, 一个是注册界面,一个是注册信息界面. 当然我们还需要一个组件去控制两个界面的切换. 每个界面其实就一个组件 , 可以通过下面的代码抽取相关的模块 module.exports=RegisterLeaf; 注册界面的代码: 主要代码 import…
一:理论知识点 1:什么是FlexBox布局? 弹性盒模型(The Flexible Box Module),又叫Flexbox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同屏幕,为盒装模型提供最大的灵活性. Flex布局主要思想是:让容器有能力让其子项目能够改变其宽度.高度(甚至是顺序),以最佳方式填充可用空间: 2:Flex布局基于flex-flow流 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位…
这些组件包括<TabView>,<NavigatorView>和<ListView>,他们实现了手机端最常用的交互和导航.你会发现这些组件在实际的项目中会非常有用. 原生的<Listview>组件使用起来会很平滑和顺畅,如果你想在ListView里渲染大量的数据,你必须让视图足够简单,这样才能减少卡顿. React Native的<ListView>组件需要两个属性:dataSource和renderRow.dataSource. 基本用法演示在…
React Native采用一中全新的布局方式:FlexBox(弹性布局).可以很方便的实现各种复杂布局,是全新的针对web和移动开发布局的一种实现方式. 何为FlexBox? 完整名称为:the flexible box Module,旨在通过弹性的方式来对齐和分布容器中的组件.Flexbuju的主要思想是:让容器有能力让其子项目能够改变其宽度|高度|顺序,以最佳方式填充可用空间. 在布局中,首先得确定主轴方向(flexDirection),主轴组件的对齐方式(justifyContent),…
本文转载自:http://mp.weixin.qq.com/s?__biz=MzIxNjEzNjUzOQ==&mid=402020148&idx=2&sn=ccad14a9197c8dbc4700c40bb907e56c&scene=1&srcid=0808BT91kp5iX5xNRV0WuWrQ#rd 一.环境需求 1.1 安装Homebrew Homebrew是OS X的套件(包)管理器,我们可以通过它获取并且安装很多组件 安装方式: ruby -e "…
属性声明 因为用React Native创建的自定义组件可以复用, 我们开发过程中可能一个项目组有多个人同时开发,其他同事可能会用到我们自定义的组件, 但是他们使用的时候很容易忘记使用某些属性,这时候我们应该在自定义组件中声明一些属性. //自定义组件 export default class ConfirmDialog extends Component { //.... } ConfirmDialog.propTypes = { userConfirmed: React.PropTypes.…
React学习笔记(五) 四.State&声明周期 可以为组件添加"状态(state)".状态与属性相似,但是状态是私有的,完全受控于当前组件. 局部状态就是只能用于类(定义为类的组件)的一个功能. 1. 将函数转换为类 声明一个类,继承React.Component:创建一个render()方法:使用this.props替换props. class Clock extends React.Component { render() { return ( <div>…
本章节主要学习Text的布局,仿照网易新网: 代码: /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, PixelRatio, Text, View } from 'react-native'; const Header=requ…
React Native小白入门学习路径--五 序 "哦天呐!" 这句话成了我在实验室的口头禅, 老师可能觉得我们都是大神吧,都还在看着基础就给布置了那么多任务:写一个RN的TDD测试的Demo,对项目添加两个issues,要求每个人都写一个实现issues的Demo--组员一个个都在吐槽老师安排的任务太超前. 大家在群里问学长怎么弄测试,学长礼貌的回了一句说 测个锤子啊,去年这个时候我都还在看基础呢! 作为RN组长我快要疯了.老师一边让我协调各组员的任务进度,还单独给我布置了配置Gi…
###伸缩项目的属性 1.order 定义项目的排列顺序,数值越小,排列越靠前,默认值为0,语法为:order:整数值 2.flex-grow 定义伸缩项目的放大比例,默认值为0,即表示如果存在剩余空间,也不放大,语法为:flex-grow:整数值 3.flex-shrink 定义伸缩项目的收缩能力,默认值为1 ,其语法为:flex-shrink:整数值 4.flex-basis 用来设置伸缩项目的基准值,剩余的空间按比率进行伸缩,其语法为:flex-basis:length | auto,默认…
在React Native界面开发中, 如果使用绝对定位布局,在代码运行时的某个时刻有可能会遮盖住它的下方的某个组件.这是因为绝对定位只是说这个组件的位置由它父组件的边框决定. 绝对定位的组件可以被认为会覆盖在它前面布局(JSX代码顺序)的组件的上方. 如果被遮盖住的组件需要处理触摸事件.比如我们在一个地图组件上覆盖了一个图像组件用来显示信息,又不想让这个图像组件影响用户手指拖动地图的操作,这时就需要使用图像组件从View组件继承得到的pointerEvents属性来解决这个问题. **poin…
前言 本系列是基于React Native版本号0.44.3写的.任何一款 App 都有界面之间数据传递的这个步骤的,那么在RN中,组件间是怎么传值的呢?这篇文章将介绍到顺传.逆传已经通过通知传值. 顺传 其实我们在本系列第二篇文章中,讲述Props和State的时候就已经接触了顺传. 通过props传值 举个…
终于,终于,可以总结自己使用RN时的分享功能了-- 为什么呢?且听我慢慢道来吧: 从刚开始接触React Native(2017年9月中旬)就着手于分享功能,直到自己参与公司的rn项目开发中,再到现在几乎"竣工"的过程中,这一路的"艰辛"估计也只有自己能体会到了吧.其实自己并不喜欢抱怨,也不喜欢把负能量带给身边的朋友,因此在遇到问题后,都是竭尽全力的攻克它,也许会"废寝忘食",也许是"徒劳无功",即使中间道路实在太曲折,但庆幸…
参考:原文地址 几个月前官方推出了快速创建工具包,由于对React Native不熟悉这里直接使用这2个工具包进行创建 1. create-react-native-app(下文简称CRNA): 2.Expo(原名Exponent). 第一步 .先安装create-react-native-app $ npm install -g create-react-native-app 下一步:创建 native app create-react-native-app nativedemo 等待执行结果…
前言 本系列是基于React Native版本号0.44.3写的.任何一款 App 都有界面之间数据传递的这个步骤的,那么在RN中,组件间是怎么传值的呢?这篇文章将介绍到顺传.逆传已经通过通知传值. 顺传 其实我们在本系列第二篇文章中,讲述Props和State的时候就已经接触了顺传. 通过props传值 举个…
前言 React Native 是以实际像素 dp 为单位的,这导致在不同分辨率的屏幕会有不一样的显示情况. 在原生 Android 中,可以根据不同的分辨率添加不同的样式目录,以解决不同分辨率的问题. 在 web 中常见的屏幕适配方式是使用 rem.vw作为基本单位. 在微信小程序中,使用 rpx 作为屏幕适配单位,结合 px(实际像素)进行页面开发,一个屏幕的宽分为 750 份,每一份的长度则为 1rpx. 我们可以根据微信小程序的适配方案进行 App 的屏幕适配. React Native…
目录: 一.前言 二.什么是React Native 三.开发环境搭建 四.预备知识 五.最简单的React Native小程序 六.总结 七.参考资料   一.前言 虽然只是简单的了解了一下React的皮毛,但是对React Native的学习就轻松了好多.所以在学习React Native之前,最好还是先学习一下React.因为我学习的iOS开发,对iOS更加了解,所以里面主要涉及到的平台也是iOS.   二.什么是React Native React Native是一款用来开发真正原生.可…
React Native移动框架功能研究 此篇只研究React Native框架的功能. 一.React Natvie是什么 React Native是使用React(或者说JS)来开发原生APP的框架. 二.React Native的愿景 1.提供一直的跨平台开发原生APP的一直体验. 2.使用JS和React提高跨平台开发效率. 三.React Native提供的特性 1.提供了丰富的原生组件,可以是APP获得平台一致的视觉效果和体验,同时获得最佳的性能和流畅性. // iOS & Andr…
Facebook 于2015年9月15日推出react native for Android 版本, 加上2014年底已经开源的IOS版本,至此RN (react-native)真正成为跨平台的客户端框架.本篇主要是从分析代码入手,探讨一下RN在安卓平台上是如何构建一套JS的运行框架. 一. 整体架构 RN 这套框架让 JS开发者可以大部分使用JS代码就可以构建一个跨平台APP. Facebook官方说法是learn once, run everywhere, 即在Android . IOS.…
React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发   2016/09/23 |  React Native技术文章 |  Sky丶清|  4 条评论 |  11232 views   尊重版权,未经授权不得转载 本文来自:画虎烂的专栏(http://blog.csdn.net/it_talk/article/details/52638456) (一)原生UI组件之VideoView视频播放器开发 React Native并没有给我们提供VideoView…
一.声明和使用样式 1.React Native里面的样式和使用如以下所看到的.StyleSheet.create这个构造函数不是必须的. index.android.js文件 import React, { - - } from 'react-native'; class AwesomeProject extends Component { render() { return ( <View> //全部核心组件都能够接受style属性 <Text style={styles.base}…
React Native应用实现步骤 在整个应用设计中,始终按照自下而上的原则进行.在大型的项目中,自下而上的设计方式简单,可以并行工作,并且可以在构建的同时写测试用例. React Native设计大体为五个步骤. 一.应用原型 设计各界面的草图.从主界面开始,处理各种跳转的关系. 二.基础组件结构设计 原型设计完成后,需要设计每个界面的React Native基础组件的分层结构. 2.1 列出所有需要使用的基础组件 首先要做的是从UI界面上找出所有需要使用的基础组件.基础组件需要遵循“责任唯…
有段时间没更新博客了,之前计划由浅到深.从应用到原理,更新一些RN的相关博客.之前陆续的更新了6篇RN应用的相关博客(传送门),后边因时间问题没有继续更新.主要是平时空余时间都用来帮着带娃了,不过还是要挤挤时间来总结下,目标是完成由浅到深.由应用到原理的RN系列博客.本篇算是属于原理部分的博客,不过不在之前计划中.本篇是本人在公司内部某事业群大前端月刊中发布的一篇纯技术分享的博客,是基于Facebook的RNTester工程进行的TurboModule的源码分析,因为不涉及公司内部的敏感代码及相…
史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的搭建好环境本站推出搭建教程. 安装学习遇到任何问题可以加入 ReactNative高级交流群 127482131 或访问博客网站 http://www.reactnative.pw/ 第一步安装JAVA JDK 下载对应你电脑系统版本的 1.8 32位或64位SDK. 下载网站http://jdk.…
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeText3.其实这种教程网上有很多,我只是单纯地把自己的一些经验写出来,也是自己的经历,有地方不对的请指正,感激不尽! 1.Mac开发RN环境搭建 1>安装homebrew,Mac上缺少包管理工具,所以安装Homebrew包管理管理我们需要安装的Node.js等工具和软件. 打开终端输入: /usr/…
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. PS:任何新技术的尝鲜都一定要控制在自己能控制的范围内,失败了会有可替换方案,不要引起不可逆的问题,这样会给团队造成灾难性的后果. 事实上,RN经过一段时间发展,已经有充分数量的人尝试过了,就我身边就有几批,褒贬也不一: ① 做UI快 ② 还是有很多限制,不如原生Native ③ 入门简单,能让前端快…