Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React Native之常用第三方库

React Native之常用第三方库

作者头像
xiangzhihong
发布于 2018-02-05 13:14:25
发布于 2018-02-05 13:14:25
9.2K00
代码可运行
举报
文章被收录于专栏:向治洪向治洪
运行总次数:0
代码可运行

前言

React Native出来一年多了,受到各大开发人员的喜爱,但是由于只是专注于View层的开发,因此在很多深层次上还需要结合原生app做一定的兼容,还有就是现在好多控件,如Android中已是系统的控件的sidemenu、checkbox、gridview等,这些在react native中 系统是没有给我们提供的,这时候就借助了第三方开源的力量。 那么我们今天说说在React Native项目开发中常见的一些第三方库。

常见的第三方库

组件篇

CheckBox(多选按钮)

react-native-check-box CheckBox 基本用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <CheckBox
     style=
     onClick={()=>this.onClick(data)}
     isChecked={data.checked}
     leftText={leftText} />;

当然我们也可以自定义样式,主要是对选中和未选中的样式做修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
renderCheckBox(data) {
    var leftText = data.name;
    return (
        <CheckBox
            style=
            onClick={()=>this.onClick(data)}
            isChecked={data.checked}
            leftText={leftText}
            checkedImage={<Image source={require('../../page/my/img/ic_check_box.png')} style={this.props.theme.styles.tabBarSelectedIcon}/>}
            unCheckedImage={<Image source={require('../../page/my/img/ic_check_box_outline_blank.png')} style={this.props.theme.styles.tabBarSelectedIcon}/>}
        />);
}

RadioButton(单选按钮)

react-native-flexi-radio-button 使用也很简单,就是在中嵌套下就行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <RadioGroup
                   onSelect = {(index, value) => this.onSelect(index, value)}
                >
                     <RadioButton value={'item1'} >
                         <Text>This is item #1</Text>
                     </RadioButton>

                    <RadioButton value={'item2'}>
                         <Text>This is item #2</Text>
                     </RadioButton>

                     <RadioButton value={'item3'}>
                         <Text>This is item #3</Text>
                    </RadioButton>
                </RadioGroup>

sidemenu (侧滑栏)

react-native-side-menu 使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<SideMenu menu={menu}>
        <ContentView/>
      </SideMenu>

splashscreen

react-native-splash-screen 使用也很简单,就是添加一个闪屏的xml

imagepicker

这个组件帮助我们选取图片和调用相机等,这个组件同时支持photo和video,也就是照片和视频都可以用这个组件实现。 用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 import ImagePickerManager from ‘NativeModules‘;

var options = {
  title: ‘Select Avatar‘, // 选择器的标题,可以设置为空来不显示标题
  cancelButtonTitle: ‘Cancel‘,
  takePhotoButtonTitle: ‘Take Photo..., // 调取摄像头的按钮,可以设置为空使用户不可选择拍照
  chooseFromLibraryButtonTitle: ‘Choose from Library..., // 调取相册的按钮,可以设置为空使用户不可选择相册照片
  customButtons: {
    ‘Choose Photo from Facebook‘: ‘fb‘, // [按钮文字] : [当选择这个按钮时返回的字符串]
  },
  mediaType: ‘photo‘, // ‘photo‘ or ‘video‘
  videoQuality: ‘high‘, // ‘low‘, ‘medium‘, or ‘high‘
  durationLimit: 10, // video recording max time in seconds
  maxWidth: 100, // photos only默认为手机屏幕的宽,高与宽一样,为正方形照片
  maxHeight: 100, // photos only
  allowsEditing: false, // 当用户选择过照片之后是否允许再次编辑图片
};

ImagePickerManager.showImagePicker(options, (response) => {
  console.log(‘Response =, response);

  if (response.didCancel) {
    console.log(‘User cancelled image picker‘);
  }
  else if (response.error) {
    console.log(‘ImagePickerManager Error:, response.error);
  }
  else if (response.customButton) {
    // 这是当用户选择customButtons自定义的按钮时,才执行
    console.log(‘User tapped custom button:, response.customButton);
  }
  else {
    // You can display the image using either data:

    if (Platform.OS === ‘android‘) {
        source = {uri: response.uri, isStatic: true};
    } else {
        source = {
            uri: response.uri.replace(‘file://, ‘‘),
            isStatic: true
        };
    }

    this.setState({
      avatarSource: source
    });
  }
});

然后在页面展示的时候:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Image source={this.state.avatarSource} style={styles.uploadAvatar} />

说到这里,我们要说一下另一个控件picker

picker-Android

Picker就是ReactNative界的Spinner,其常用的属性有:

  • onValueChange 这个方法在方法在选择Picker某一项时调用 可传两个参数 选择的value和position
  • selectedValue 这个属性是选择的值
  • enabled 设置是否可点击 Android属性
  • mode 设置样式 Android属性 dropdown下拉样式和dialog弹窗样式 默认是dialog
  • prompt 设置Picker标题 Android属性 并且只有是mode为dialog才会显示
  • itemStyle 设置每一项的样式 iOS属性

用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * Created by Administrator on 2016/9/7.
 */
import React, {Component} from 'react';
import {
    AppRegistry,
    View,
    Picker,

} from 'react-native';

class PickerG extends Component {

    constructor(porp) {
        super(porp);
        this.state= {
            selectedValue: ''
        }
    }


    render() {
        return (
            <Picker
                //Picker样式 dialog弹窗样式默认  dropdown显示在下边
                // mode = {'dropdown'}
                //显示选择内容
                selectedValue={this.state.selectedValue}
                //选择内容时调用此方法
                onValueChange={(value)=>this.setState({selectedValue: value})}
                //设置Title 当设置为dialog时有用
                prompt={'请选择'}
            >
                <Picker.Item label='Android' value='android'/>
                <Picker.Item label='IOS' value='ios'/>
                <Picker.Item label='ReactNative' value='reactnative'/>
            </Picker>
        )
    }
}

module.exports = PickerG;

easy-toast

react-native-easy-toast 这个组件兼容了Android和iOS的toast,使用也很简单。 用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
render() {
         return (
             <View style={styles.container}>
                 ...
                 <Toast ref="toast"/>
             </View>
         );
 }

最后在需要调用的地方:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.refs.toast.show('hello world!');

其他的第三方库

选项卡 各种漂亮的小组件 按钮 输入框表单验证 https://github.com/gcanti/tcomb-form-native https://github.com/FaridSafi/react-native-gifted-form https://github.com/bartonhammond/snowflake 炫酷效果的 TextInput https://github.com/halilb/react-native-textinput-effects https://github.com/zbtang/React-Native-TextInputLayout 聊天表情 地图 动画 加载动画 日历 可多选的Listview react-native-uploader //文件上传

react-native-animatable 动画

react-native-carousel 轮播

react-native-countdown 倒计时

react-native-device-info设备信息

react-native-icons 图标

react-native-image-picker 图片选择器

react-native-keychain iOS KeyChain管理

react-native-picker滚轮选择器

react-native-picker-Android Android 滚轮选择器

react-native-refreshable-listview 可刷新列表

react-native-scrollable-tab-view 可滚动标签

react-native-side-menu 侧栏

react-native-swiper 轮播

react-native-video 视频播放

react-native-viewpager 分页浏览

react-native-scrollable-tab-view 可滑动的底部或上部导航栏框架

react-native-tab-navigator 底部或上部导航框架(不可滑动)

react-native-check-box CheckBox多选

react-native-splash-screen 启动白屏问题

react-native-simple-router 简易路由跳转框架

react-native-storage 持久化存储

react-native-sortable-listview 分类ListView

react-native-htmlview 将 HTML 目录作为本地视图的控件,其风格可以定制

react-native-easy-toast 一款简单易用的 Toast 组件

react-native-tab-navigator 选项卡

react-native-material-kit 漂亮的小组件

NativeBasebase组件库(各种封装不错的小组件)

不错的按钮: https://github.com/mastermoo/react-native-action-button https://github.com/ide/react-native-button

输入框表单验证 https://github.com/gcanti/tcomb-form-native https://github.com/FaridSafi/react-native-gifted-form https://github.com/bartonhammond/snowflake

炫酷效果的 TextInput https://github.com/halilb/react-native-textinput-effects https://github.com/zbtang/React-Native-TextInputLayout

地图 https://github.com/lelandrichardson/react-native-maps 动画 https://github.com/oblador/react-native-animatable 加载动画 https://github.com/maxs15/react-native-spinkit 抽屉效果 https://github.com/root-two/react-native-drawer https://github.com/react-native-fellowship/react-native-side-menu 侧滑按钮 https://github.com/dancormier/react-native-swipeout https://github.com/jemise111/react-native-swipe-list-view 图表 https://github.com/tomauty/react-native-chart 下拉放大 https://github.com/lelandrichardson/react-native-parallax-view 可滑动的日历组件 https://github.com/cqm1994617/react-native-myCalendar 语言转化和一些常用格式转换 https://github.com/joshswan/react-native-globalize 单选多选ListView https://github.com/hinet/react-native-checkboxlist 选择按钮 https://github.com/sconxu/react-native-checkbox 二维码 https://github.com/ideacreation/react-native-barcodescanner 制作本地库 https://github.com/frostney/react-native-create-library 影音相关 https://github.com/MisterAlex95/react-native-record-sound 安卓录音 https://github.com/bosung90/react-native-audio-android 提示消息的Bar https://github.com/KBLNY/react-native-message-bar iOS原生TableView https://github.com/aksonov/react-native-tableview 点击弹出视图 https://github.com/jeanregisser/react-native-popover https://github.com/instea/react-native-popup-menu 3D Touch https://github.com/madriska/react-native-quick-actions 双平台兼容的ActionSheet https://github.com/beefe/react-native-actionsheet 照片墙 https://github.com/ldn0x7dc/react-native-gallery 键盘遮挡问题 https://github.com/reactnativecn/react-native-inputscrollview https://github.com/wix/react-native-keyboard-aware-scrollview 本地存储 https://github.com/sunnylqm/react-native-storage 星星 https://github.com/djchie/react-native-star-rating 国际化 https://github.com/joshswan/react-native-globalize 扫描二维码 https://github.com/lazaronixon/react-native-qrcode-reader 通讯录 https://github.com/rt2zz/react-native-contacts 加密 https://www.npmjs.com/package/crypto-js 缓存管理 https://github.com/reactnativecn/react-native-http-cache ListView的优化 https://github.com/sghiassy/react-native-sglistview 图片和base64互转 https://github.com/xfumihiro/react-native-image-to-base64 安卓 iOS 白屏解决 https://github.com/mehcode/rn-splash-screen Text跑马灯效果 https://github.com/remobile/react-native-marquee-label 清除按钮的输入框 https://github.com/beefe/react-native-textinput WebView相关 https://github.com/alinz/react-native-webview-bridge 判断横竖屏 https://github.com/yamill/react-native-orientation PDF https://github.com/cnjon/react-native-pdf-view 获取设备信息 https://github.com/rebeccahughes/react-native-device-info 手势放大缩小移动 https://github.com/kiddkai/react-native-gestures https://github.com/johanneslumpe/react-native-gesture-recognizers 下拉-上拉-刷新 https://github.com/FaridSafi/react-native-gifted-listview https://github.com/jsdf/react-native-refreshable-listview https://github.com/greatbsky/react-native-pull/wiki 下拉选择 https://github.com/alinz/react-native-dropdown 图片查看 https://github.com/oblador/react-native-lightbox 照片选择 https://github.com/marcshilling/react-native-image-picker https://github.com/ivpusic/react-native-image-crop-picker 图片加载进度条 https://github.com/oblador/react-native-image-progress 轮播视图 https://github.com/race604/react-native-viewpager https://github.com/FuYaoDe/react-native-app-intro https://github.com/appintheair/react-native-looped-carousel https://github.com/leecade/react-native-swiper 模态视图 https://github.com/maxs15/react-native-modalbox https://github.com/brentvatne/react-native-modal https://github.com/bodyflex/react-native-simple-modal 毛玻璃效果 https://github.com/react-native-fellowship/react-native-blur 头像库 https://github.com/oblador/react-native-vector-icons 滑动选项卡 https://github.com/skv-headless/react-native-scrollable-tab-view

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
React Native组件只Image
不管在Android还是在ios原生的开发中,图片都是作为控件给出来的,在RN中也有这么一个控件(Image)。根据官网的资料,图片分为本地静态图片,网络图片和混合app资源。一下分类介绍来源官网。 静态图片资源 从0.14版本开始,React Native提供了一个统一的方式来管理iOS和Android应用中的图片。要往App中添加一个静态图片,只需把图片文件放在代码文件夹中某处,然后像下面这样去引用它: <Image source={require('./my-icon.png')} /> 图片文件
xiangzhihong
2018/02/05
1.9K0
React Native组件只Image
基于豆瓣和妹子的api用React Native写的demo for android
最近一直在学React Naitve,可以说React Native的确有他自身强大的地方,不管是运行效率还是热更新都和一般的h5有的一比,当然因为面世的时间还不算太久,版本更新又十分的快,所以坑也多,对于一般的移动开发者来说学习成本也蛮大的, 个人觉得用React Naitve做混合开发,把一些需要经常变化的模块用react native开发还是一个不错的选择。
HelloJack
2018/08/28
8890
基于豆瓣和妹子的api用React Native写的demo for android
ReactNative常用组件汇总
导航组件 react-navigation: https://github.com/react-community/react-navigation 网络请求 asios: https://github.com/mzabriskie/axios 设备信息 react-native-device-info: https://github.com/rebeccahughes/react-native-device-info 缓存使用 react-native-storage: https://github.co
磊哥
2018/05/08
1K0
React-Native 20分钟入门指南
在React-Native出现之前移动端主流的开发模式是原生开发和Hybrid开发(H5混合原生开发),Hybrid app相较于native app的优势是开发成本低开发速度快(H5页面开发跨平台,无需重新写web、android、ios代码),尽管native app在开发上需要更多时间,但却带来了更好的用户体验(页面渲染、手势操作的流畅性),也正是基于这两点Facebook在2015年推出了React-Native
conanma
2021/11/02
3.6K0
React Native 学习资源精选仓库
React Native Awesome汇集了各类react-native学习资料、工具、组件、开源App、资源下载、以及相关新闻等,只求精不求全。 如果你是一名React Native爱好者,或者有一颗热爱钻研新技术的心,喜欢分享技术干货、项目经验、以及你在React Naive学习研究或实践中的一些经验心得等等,欢迎投稿《React Native Awesome》。 如果你是一名Android、iOS、或前端开发人员,有者一颗积极进取的心,欢迎关注《React Native Awesome》。本项目汇
CrazyCodeBoy
2018/05/07
3.1K0
React Native 常用的 15 个库
本篇 React native 库列表不是从网上随便找的, 这些是我在我的应用中亲自使用的库。 这些库功能可能跟其它库也有,但经过大量研究并在我的程序中尝试后,我选择了这些库。
前端小智@大迁世界
2019/04/25
6.2K0
React Native 常用的 15 个库
React Native之Picker组件详解
Picker简介 在iOS和Android中选择器(Picker)是常见的控件之一,比如TimePickr(Android),pickerView(ios),并且这些基本控件可以实现诸如地址选择等效果。在RN开发中,系统也为我们提供Picker控件。应用如下: <Picker selectedValue={this.state.language} onValueChange={(lang) => this.setState({language: lang})}> <Picker.Item lab
xiangzhihong
2018/02/06
5K0
React Native之Picker组件详解
一个简单的ReactNative demo
本人非前端,请轻喷 ReactNative版本:0.31 github:https://github.com/X-FAN/reactnativelearn
夏洛克的猫
2018/10/18
2.1K0
一个简单的ReactNative demo
React Native控件只TextInput
TextInput是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。 比如官网最简单的写法: import React, { Component } from 'react'; import { AppRegistry, TextInput } from 'react-native'; class UselessTextInput extends Component { construct
xiangzhihong
2018/02/05
3.8K0
React Native控件只TextInput
使用react-native-tab-navigator切换页面
切换页面是app最基本功能。这个功能需要用Navigation组件实现。 RN发展太快了(v49),之前自带的Navigation组件被弃用了,如果只针对ios,还可以用NavigatorIOS 社区中也有几个不错的 https://github.com/react-community/react-navigation https://github.com/wix/react-native-navigation https://github.com/happypancake/react-native-tab-navigator 以react-native-tab-navigator为例,实现下面的tab切换效果很容易:
mafeifan
2018/09/10
2.8K0
使用react-native-tab-navigator切换页面
基础篇章:关于 React Native 之 Picker 组件的讲解
(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 今天我们就讲Picker ,顾名思义就是选择器。用法也是相当的简单。这里我们直接就看属性吧。 Picker 的属性 onValueChange function 当选择器中的某一项被选中的时候进行回调此函数。回调时有如下两个参数: itemValue 被选中项的value属性 itemPosition 被选中项所在的索引 selectedValue any 默认选中的值,可谓字符串或者整数 s
非著名程序员
2018/02/09
1.4K0
基础篇章:关于 React Native 之 Picker 组件的讲解
那些React-Native踩过的的坑
    这几天开始边学边做新模式,也踩了不少坑,所以会记录下来--俗话说好记心不如烂笔头,何况还没有一颗好记心(-_-)。    从学React-Native开发功能模块大概5天,有些体会:1如果说按产品原型去做一样东西,那是容易的,但是这会造成很多问题,第一个是机器人一样写代码,你不会从项目整体思考,代码的质量也比较差而且不容易维护),所以决定每天写个博客,看1个小时React-native基础点。  0x01 关于Reac-Native调试命令react-native start的坑    wind
用户1148881
2018/01/15
2.1K0
那些React-Native踩过的的坑
一个上架了的React Native项目实战总结
学习 : 视频开发教程 喜欢逛GitHub的小伙伴都知道,它有个查看最热项目的功能叫trending,但这个功能只能在网页上查看, 而且在手机上浏览显示效果很不友好,而我想在地铁上,餐厅,路上等空余的时间使用它,所以我需要一款带有这个功能的App, 不仅于此,我还想要在这款App上查询GitHub上我所喜欢的项目,甚至在手机没网的时候也能看到,而且我想要我的iOS和Android手机都能使用这款App, 于是GitHub Popular便诞生了。 这个项目满足了我如下3方面的需求: 在手机App
CrazyCodeBoy
2018/05/07
1.8K0
一个上架了的React Native项目实战总结
React Native 表格组件
npm install--save react-native-data-table
forrest23
2018/08/03
1.9K0
React Native 表格组件
【React Native 安卓开发】----侧边栏的实现DrawerLayoutAndroid以及第三方框架react-native-side-menu的使用【第六篇】
做过安卓原生开发的童鞋们应该都做过侧边栏这个东西,而且对于开源框架SlidingMenu和android官方侧滑菜单DrawerLayout应该都不陌生。 那么今天也在这里给大家介绍一下React-Native中的侧滑菜单DrawerLayoutAndroid和第三方框架react-native-side-menu。
先知先觉
2019/01/21
7K0
React Native基础&入门教程:初步使用Flexbox布局
在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击《React Native基础&入门教程:调试React Native应用的一小步》。 在本篇里,让我们一起来了解一下,什么是Flexbox布局,以及如何使用。 一、长度的单位 在开始任何布局之前,让我们来首先需要知道,在写React Native组件样式时,长度的不带单位的,它表示“与设备像素密度无关的逻辑像素点”。 这个怎么理解呢? 我们知道,屏幕上一个发光的最小点,对应着一个pixel(像素)点。
葡萄城控件
2018/07/03
2.1K0
React Native控件之ListView
概述 ListView作为核心组件之一,主要用于高效地显示一个可以垂直滚动的变化的数据列表。经过自定义组装,我们还可以用它实现九宫格等页面效果。 在React Native中,使用ListView组件至少需要两个属性:DataSource和renderRow。DataSource是需要渲染界面的数据源,renderRow是根据数据源的元素返回的可渲染的组件,即ListView的一行。 在React Native中,最基本的使用方式就是创建一个ListView.DataSource数据源,然后给它传递
xiangzhihong
2018/02/06
1.6K0
React Native控件之ListView
React Native 小记 - TouchableOpacity 单次点击无效
版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出处,否则禁止转载。 https://micro.blog.csdn.net/article/details/83308510
他叫自己MR.张
2019/07/01
3K0
React Native学习笔记(三)—— 样式、布局与核心组件
React Native 有一个内置的命令行界面,你可以用它来生成一个新项目。您可以使用 Node.js 附带的 访问它,而无需全局安装任何内容。让我们创建一个名为“AwesomeProject”的新 React Native 项目:npx
张果
2023/04/12
14.8K0
React Native学习笔记(三)—— 样式、布局与核心组件
React Native 集成分享第三方登录功能分享第三方登录模块开发(Android)
在我们常用的App中经常会看到分享与第三方登录的功能,可以说分享与第三方登录已经成为了各大APP的必备功能。对于产品运行与推广来说,分享与第三方登录不仅能加强用户粘性,增加流量及新用户,也能提升用户存
CrazyCodeBoy
2018/05/07
1.9K0
React Native 集成分享第三方登录功能分享第三方登录模块开发(Android)
相关推荐
React Native组件只Image
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验