【REACT NATIVE 系列教程之十一】插件的安装、使用与更新(示例:REACT-NATIVE-TAB-NAVIGATOR)

简介:

本篇主要来详细介绍如何安装、升级插件及讲解一个react-native-tab-navigator的示例。

首先推荐一个插件网站:https://www.npmjs.com     (此插件属于半官方维护的)

本文举例使用的插件:react-native-tab-navigator ,选项卡形式的导航

1. 通过  https://www.npmjs.com 找到我们想使用的插件, 搜索:react-native-tab-navigator

2. 我们可以看到插件介绍页面有详细的介绍,以及如何安装也有介绍,如下图:

444444

图中红色框选的是插件在github的源码页面地址~

 

3. 下面对项目进行安装此插件:

3.1  打开终端,cd 到项目根路径

3.2 使用命令:npm install react-native-tab-navigator –save  进行安装,如下图:

3322111

3.3 安装成功后,你会在项目下的package.json文件内dependencies下看到(如下图):

asdf1

            新增加了一条:”react-native-tab-navigator”: “^0.3.2”

 

4. 更新插件的两种方式方式(上):

4.1:  打开终端,cd 到目标项目根路径

4.2 使用命令: npm install xxx@yyy –save –registry zzz

 –save 记录版本到项目的package.json下留底(一般最好都带上)

 –registry 指定 镜像源

 xxx@yyy : @符号前是 插件名,@符号后是插件目标版本号

      (如果目标版本号yyy填:latest  表示该插件的最新版本)  

zzz:制定的镜像源地址

这里举例:

         npm install react-native-tab-navigator@latest –save

        以上命令:更新react-native-tab-navigator插件到最新  ,且将版本号记录到项目的json文件中。    

4. 更新插件的两种方式方式(下):

4.1 :利用插件检查模块最新版本:npm-check-updates

4.2 :  安装到项目中,然后利用命令:ncu  进行查看版本,如下图:

111er 1111err

 

5. 插件的使用:

5.1: 首先导入(使用node_modules下的模块,不需要路径):

1
import TabNavigator from  'react-native-tab-navigator' ;


5.2 :  绘制代码段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
render() {
      return  (
        ......
          <TabNavigator tabBarStyle={styles.tab} >
             <TabNavigator.Item
              selected={ this .state.selectedTab ===  'home' }
              title= "Home"
              renderIcon={() => <Image source={require( './res/home_normal.png' )} />}
              renderSelectedIcon={() => <Image source={require( './res/home_focus.png' )} />}
              badgeText= "61"
              onPress={() =>  this .setState({ selectedTab:  'home'  })}>
  
          <View style={{flex:1,backgroundColor: '#fff' ,justifyContent: 'center' }}>
               <Text style={{fontSize:20}}>我是第一个选项卡,直接书写出的视图!</Text>
          </View>
  
             </TabNavigator.Item>
             <TabNavigator.Item
              selected={ this .state.selectedTab ===  'profile' }
              title= "Profile"
              renderIcon={() => <Image source={require( './res/personal_normal.png' )} />}
              renderSelectedIcon={() => <Image source={require( './res/personal_focus.png' )} />}
              onPress={() =>  this .setState({ selectedTab:  'profile'  })}>
              
                  <TestPage/>
               
             </TabNavigator.Item>
           </TabNavigator>
        ......
      );
   }


 TabNavigator.Item: 每个选项卡的组件名,其中属性解释:

selected:当前选项卡是否被选中

title: 标题

renderIcon:icon

renderSelectedIcon:被选中时的icon

badgeText:提示的角标数字

onPress:点击后事件响应函数

当选项卡被选中后,才会显示选项卡绘制的视图内容。

最后给出一个示例,两个文件:

Main.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import React, { Component } from  'react' ;
import {
   View,
   Text,
   StyleSheet,
   Image,
  } from  'react-native' ;
  
import TabNavigator from  'react-native-tab-navigator' ;
import TestPage from  './TestPage' ;
  
export  default  class Main extends Component {
  constructor(props) {
  super (props);
  this .state = {
       selectedTab: 'home'
     };
  }
  
   render() {
      return  (
        <View style={{flex: 1}}>
          <Text style={styles.himiTextStyle}>Himi React Native 系列教程</Text>
          <TabNavigator tabBarStyle={styles.tab} >
             <TabNavigator.Item
              selected={ this .state.selectedTab ===  'home' }
              title= "Home"
              renderIcon={() => <Image source={require( './res/home_normal.png' )} />}
              renderSelectedIcon={() => <Image source={require( './res/home_focus.png' )} />}
              badgeText= "61"
              onPress={() =>  this .setState({ selectedTab:  'home'  })}>
          <View style={{flex:1,backgroundColor: '#fff' ,justifyContent: 'center' }}>
             <Text style={{fontSize:20}}>我是第一个选项卡,直接书写出的视图!</Text>
          </View>
             </TabNavigator.Item>
  
             <TabNavigator.Item
              selected={ this .state.selectedTab ===  'profile' }
              title= "Profile"
              renderIcon={() => <Image source={require( './res/personal_normal.png' )} />}
              renderSelectedIcon={() => <Image source={require( './res/personal_focus.png' )} />}
              onPress={() =>  this .setState({ selectedTab:  'profile'  })}>
                  <TestPage/>
             </TabNavigator.Item>
           </TabNavigator>
        </View>
      );
   }
};
  
var  styles = StyleSheet.create({
   tab: {
         height: 100,
         backgroundColor:  '#eee' ,
         alignItems:  'center'
     },
     himiTextStyle:{
       backgroundColor: '#eee' ,
       color: '#f00' ,
       fontSize:30,
       marginTop:30,
   },
});


TestPage.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import React, { Component } from  'react' ;
import {
   Text,
   View,
  } from  'react-native' ;
  
import TabNavigator from  'react-native-tab-navigator' ;
  
export  default  class TestPage extends Component {
  constructor(props) {
  super (props);
  this .state = {
       selectedTab: 'home'
     };
  }
  
   render() {
      return  (
        <View style={{flex:1,backgroundColor: '#eee' ,justifyContent: 'center' }}>
           <Text style={{fontSize:20,color: '#f00' }}>我是TestPage,导入使用的!</Text>
        </View>
      );
   }
};



效果演示(点击查看动态图):

user98

 





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

目录
相关文章
|
3月前
针对react-captcha-code第三方插件不能每次触发深颜色的处理
针对`react-captcha-code`插件生成浅色验证码的问题,通过改造成class组件`MyCaptcha.js`,自定义颜色和验证码生成逻辑,解决了颜色问题。
35 1
针对react-captcha-code第三方插件不能每次触发深颜色的处理
|
2月前
|
前端开发 JavaScript CDN
React 教程
10月更文挑战第6天
50 3
|
3月前
|
Web App开发 前端开发 测试技术
react18基础教程系列--安装环境及packagejson文件分析
react18基础教程系列--安装环境及packagejson文件分析
|
3月前
|
前端开发 Python
React技术栈-React路由插件之自定义组件标签
关于React技术栈中React路由插件自定义组件标签的教程。
65 4
React技术栈-React路由插件之自定义组件标签
|
3月前
|
前端开发 程序员 API
React技术栈-React路由插件之react-router的基本使用
这篇博客介绍了React路由插件react-router的基本使用,包括其概念、API、以及如何通过实战案例在React应用中实现SPA(单页Web应用)的路由管理。
85 9
|
4月前
|
前端开发 C++
使用 Vite 创建 React+TS+SW 项目并整合 AntDesign 、Scss 等组件或插件
本文记录了如何使用Vite创建一个React+TypeScript+Service Workers(SW)项目,并整合AntDesign组件库和Scss等插件,包括项目的创建、配置问题解决、AntDesign和Scss的整合方法。
311 1
|
5月前
|
前端开发
react18【系列实用教程】Hooks 闭包陷阱 (2024最新版)含useState 闭包陷阱,useEffect 闭包陷阱,useCallback 闭包陷阱
react18【系列实用教程】Hooks 闭包陷阱 (2024最新版)含useState 闭包陷阱,useEffect 闭包陷阱,useCallback 闭包陷阱
80 0
|
5月前
|
JavaScript
react18【系列实用教程】useRef —— 创建 ref 对象,获取 DOM (2024最新版)
react18【系列实用教程】useRef —— 创建 ref 对象,获取 DOM (2024最新版)
66 0
|
5月前
|
缓存 前端开发
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
132 0
|
5月前
|
缓存
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
54 0
下一篇
DataWorks