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

目录
相关文章
|
5天前
|
开发框架 前端开发 JavaScript
探索前端开发中的跨平台框架React Native
本文将介绍前端开发中一种备受关注的跨平台框架React Native,通过比较原生应用与React Native的优缺点,探讨其在实际项目中的应用以及未来发展趋势。
|
5天前
|
开发框架 前端开发 JavaScript
从零开始学习React Native开发
React Native是一种基于React框架的移动端开发框架,使用它可以快速地构建出高性能、原生的移动应用。本文将从零开始,介绍React Native的基础知识和开发流程,帮助读者快速入门React Native开发,并实现一个简单的ToDo应用程序。
|
5天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
|
5天前
|
前端开发 JavaScript Android开发
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
|
5天前
|
开发框架 移动开发 前端开发
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
【5月更文挑战第14天】Uniapp和React Native是热门的跨平台移动开发框架。Uniapp以其一套代码多端运行、丰富的组件生态和较低的学习曲线受到青睐,适合快速开发简单应用。React Native基于React,拥有活跃社区和优秀性能,适合复杂应用。React Native在性能上略胜一筹,尤其在需要接近原生体验的场景。Uniapp的官方组件弥补了社区资源不足。选择时需考虑开发效率、性能需求、团队技术栈和社区支持。
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
|
5天前
|
移动开发 前端开发 JavaScript
使用React Native进行跨平台移动开发
【5月更文挑战第13天】React Native是Facebook的跨平台移动开发框架,基于JavaScript和React,允许开发者编写原生应用。它提供跨平台性、原生性能、平缓的学习曲线及丰富的社区支持。开发流程包括安装CLI、创建项目、编写代码、运行调试及测试发布。进阶应用涉及状态管理、性能优化、原生模块集成和自动化测试。React Native降低了开发成本,提升了效率,是移动开发的优选方案。
|
5天前
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
|
5天前
|
前端开发 数据可视化 API
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(二)
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
39 0
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(二)
|
5天前
|
前端开发 JavaScript CDN
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(一)
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
35 0
|
5天前
|
Dart 前端开发 JavaScript
《跨平台移动应用开发探索:Flutter vs React Native》
在移动应用开发领域,跨平台技术日益成熟,Flutter和React Native作为两大主流框架备受关注。本文将对比Flutter和React Native在性能、开发体验、生态系统等方面的优劣,并探讨它们在不同场景下的适用性,以帮助开发者选择最适合自己项目的技术方案。

热门文章

最新文章