【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,如需转载请自行联系原作者

目录
相关文章
|
4月前
|
前端开发 JavaScript 编译器
React编程新手入门实践教程
本书深入解析React核心思想与设计哲学,涵盖组件化思维、虚拟DOM原理及JSX本质,探讨函数组件与类组件特性,详解状态管理、生命周期控制及事件处理机制,帮助开发者掌握高效构建用户界面的技巧。
147 1
针对react-captcha-code第三方插件不能每次触发深颜色的处理
针对`react-captcha-code`插件生成浅色验证码的问题,通过改造成class组件`MyCaptcha.js`,自定义颜色和验证码生成逻辑,解决了颜色问题。
180 1
针对react-captcha-code第三方插件不能每次触发深颜色的处理
|
Web App开发 前端开发 测试技术
react18基础教程系列--安装环境及packagejson文件分析
react18基础教程系列--安装环境及packagejson文件分析
|
前端开发 JavaScript CDN
React 教程
10月更文挑战第6天
157 3
|
前端开发 JavaScript CDN
React 安装(CDN)
10月更文挑战第6天
375 2
|
资源调度 前端开发 JavaScript
React 安装(NPM)
10月更文挑战第6天
254 1
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3600 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
1月前
|
缓存 前端开发 JavaScript
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
🌟蒋星熠Jaxonic,前端探索者。专注React Hooks深度实践,从原理到实战,分享状态管理、性能优化与自定义Hook精髓。助力开发者掌握函数组件的无限可能,共赴技术星辰大海!
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
|
6月前
|
缓存 前端开发 数据安全/隐私保护
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
270 68
|
6月前
|
缓存 前端开发 Java
在 React 中,组合组件和高阶组件在性能方面有何区别?
在 React 中,组合组件和高阶组件在性能方面有何区别?
247 67