ReactNative

https://facebook.github.io/react-native/docs
https://reactnavigation.org/

ReactNative:
 (weex也可以通过编写vue的语法代码来实现原生的开发)
  1、概述
    移动端常见的3种开发模式:
     ①webApp
      基于前端技术 (跨平台)
     ②nativeApp
      基于原生技术 (性能)
     ③hybridApp
      基于前端技术+原生技术
    
    Build native mobile apps using JavaScript and React
    使用js和react中基本语法 来实现原生应用程序的编写

    搭建环境:
     PC:
        npm install -g create-react-native-app
        
        create-react-native-app AwesomeProject

        cd AwesomeProject
        
        npm start
     Mobile:
        准备模拟器
        (https://www.yeshen.com/)
        夜神、腾讯手游、网易mumu、蓝叠。。。

 

  2、rn中组件类的创建和使用
     创建一个组件类(reactJS是一样):
      import React,{Component} from 'react'
      import {Text} from 'react-native'

      export class Demo01Component extends Component{
          render(){
              return <Text></Text>
          }
      }
     使用:
      调用组件
       import {Demo01Component} from '***'
       <Demo01Component></Demo01Component>
      
 
  3、rn中处理navigation
   reactNative本身并没有提供navigation相关的任何官方工具!
   
   有一个非常受欢迎的在RN中处理导航的第三方的工具:ReactNavigation
   (https://reactnavigation.org/)

   npm i react-navigation

   3.1 基础用法:
     import {createStackNavigator} from 'react-navigation'

     const myNavigator = createStackNavigator({
         'login':{
             screen:LoginComponent
         },
         'register':{
             screen:RegisterComponent
         }
     })

     在App.js渲染时,指定要渲染myNavigator
    
   3.2 导航:
     this.props.navigation.navigate('register')
     this.props.navigation.goBack()
   3.3 传参:
     传:this.props.navigation
        .navigate('register',{price:100})
     收:
        this.props.navigation.getParam('price')

  4、rn中处理http
    在ReactNative中实现服务器的请求和响应
    
    请求和响应:
    fetch('https://jsonplaceholder.typicode.com/todos/1')
    .then(response => response.json())
    .then(json => console.log(json))
    

  5、rn中封装的各种组件用法
    5.1 View
     指定一个容器的
    5.2 Text
     显示一段文本内容
     <Text>。。。</Text>
    5.3 Button
     <Button title="" onPress={}></Button>
    5.4 ActivityIndicator 显示一个加载中提示(小圆圈)
     <ActivityIndicator size="" color=""></ActivityIndicator>
    
    5.5 DrawerLayoutAndroid
     指定一个抽屉(侧边栏菜单)
     <DrawerLayoutAndroid
      drawerWidth={200}
      drawerPostiton={DrawerLayoutAndroid.positions.Right}
      renderNavigationView:()=>{return 抽屉中药显示的内容}
     >
        正文
     
     </DrawerLayoutAndroid>
    
    5.6 FlatList 高性能的列表组件

     //renderItem所对应的方法 会根据data所指定的集合中元素的个数 来调用多次
     <FlatList data={[1,2,3,4,5]} renderItem={this.showItem}></FlatList>

     showItem=(info)=>{
         //info.index info.item
     }
     //进阶用法:
      下拉刷新
       //onRefresh是用来指定下拉刷新时 要执行的一个处理函数
       //refreshing是用来判断当前是否要显示刷新的加载动作
        onRefresh={} refreshing={}
      上拉加载更多
        //当滑动到页面底部时,要执行一个处理函数
        onEndReached={}
    5.7 Image:
     //加载本地资源图片
     <Image source={require('../assets/imgs/1.jpg')}></Image>
     //处理远程服务器端的图片
     <Image 
        style={{width:100,height:100}}
        source={{uri:"http://172.163.100.96/framework/webapp/ionic/project/template/src/assets/img/404/404_img1.png"}}></Image>
    5.8 KeyboardAvoidingView
     在键盘弹出的时候,将有可能被遮住的视图向上弹起避免被键盘遮住
    5.9 Modal
     Modal可以用来一个自定义的模态窗口

     <Modal
          animationType="fade" //动画效果
          transparent={false} //背景色是否透明
          visible={this.state.modalVisible} //是否要显示该窗口
          onRequestClose={() => {
            Alert.alert('Modal has been closed.');
          }}>
            模态窗要显示的内容
        </Modal>
    
    5.10 Picker  实现一个选择器
     <Picker
        selectedValue={this.state.language}
        style={{ height: 50, width: 100 }}
        mode="dropdown"
        onValueChange={}>
            <Picker.Item label="Java" value="java" />
            <Picker.Item label="JavaScript" value="js" />
     </Picker>

    5.11 ScrollView
     支持滚动的容器


    5.12 slider
     支持滑动的组件(类似range),支持线性控制的音量、亮度
     <Slider></Slider>

    5.13 Switch
     是一个支持滑动的开关组件,默认是一个受控表单元素,得按照受控表单元素的流程来处理该表单元素
      ①初始化状态
      ②将状态的值绑定给value
      ③绑定事件valueChange,在处理函数中修改状态

    5.14 TextInput
        文本输入框
        <TextInput placeholder="" 
        onChangeText={}
        keyboardType="" secureTextEntry={true}></TextInput>

    5.15 TouchableOpacity
        是一个容器,放在该容器的组件将会有一个效果:点击时 有个透明度变化的效果

        <TouchableOpacity onPress={}></TouchableOpacity> 
  6、样式的处理
    import {StyleSheet} from 'react-native'

    //创建
        const myStyles = StyleSheet.create({
            myText:{
                fontSize:30,
                color:'red'
            }
        })
    //调用
        <Text style={myStyles.myText}></Text>
  7、布局的处理
    ReactNative是支持FlexBox
     flexDirection
     alignItems
     justifyContent

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值