React实战-如何快速构建一个ReactNative的Demo

React实战-如何快速构建一个ReactNativeDemo

ReactJs宣称的是一次学习就够了,意思是学习了ReactJs后,在Web端和移动端就都一样处理了。事实是否真的是这样呢?在实际的应用过程中会发现,现实并非如口号叫的那么好听,但也并非完全从头学起,但是在学会了ReactJs后,开始编写ReactNative的过程中,由于对原理了解并不深刻,会遇到各种坑。如果不扫清这些坑,会让你在第一个demo正常展示前耗费你大量的时间,让你感到沮丧(weixin:react实战)。

还是以android环境为例从安装开始,到实现第一个最基本的数据集展示和数据集操作的demo吧。

1.环境配置

一般来说,我们安装ReactNative官网中的步骤,依次执行就能正常配置。

安装node,python2,react-native-cli,再安装Android Studio.

创建一个PersonListDemo程序:react-native init PersonListDemo

再执行 react-native run-android

坑:以上是官网的步骤。但是如果只是这样就会发现会出错:app:installDebug的错误。如果以前没做过移动端的人会感觉莫名其妙,其实这个错误是应用安装调试失败。我们调试、测试的方法很多,主要包括:模拟器、真机。模拟器的安装可以包含在Android Studio中。如果在模拟器上调试的话,应先启动模拟器。最简单的方法是记住两条命令:

显示当前模拟器 emulator -list-avds;

启动模拟器 emulator -avd Nexus_6

启动模拟器后,基本上能无障碍出现HelloWorlddemo了。

2.建立自己的demo

出现HelloWorld后会让我们欣喜,然后就开始动手构建自己的demo

等你开始后会发现ReactNative中的componentReact中相去甚远,相同的只是思想和方法。我们暂且抛开iosandriod的区别,还是专注于ReactNativeReactNative中的基础component中有View,Text,Flexbox,ListView,Navigator等,这些跟ReactJs中用法类似,部分名字也类似。但是还是需要重新了解。

最常犯的错:

l Component 没有export

l Componentreturn的不是一个元素对象。

l Stylecolor并没有Web中的设置,如:’white’等。

数据显示的方式和ReactJs中一样,只是采用的控件不同而已:

<ScrollView style={style.personlist}>

     {

      PersonList.map(person => {

      return person.sex === 'F' ?

      <Text  style={{color: 'red'}}> { person.name } </Text> <Text  style={{color: 'blue'}}> { person.name }

      } )

     }

     </ScrollView>

Navigator的使用:在ReactJs中我们采用的是Rutor,在React-native中基础控件式Navigator。用于页面跳转,下面是一个简化的Navigator写法。

class MyNavigator extends Component{

onForword(route,navigator){

navigator.push({index: route.index+1});

}

onBack(route,navigator){

navigator.pop();

}

render(){

return (

    <Navigator

      initialRoute={{index: 0 }}

      renderScene={(route, navigator) => {

       switch(route.index){

       case 0:

       return <Login onForword={()=>this.onForword(route,navigator)} />;

       case 1:

       return <Dashborder onBack={()=>this.onBack(route,navigator)}

       onForword={()=>this.onForword(route,navigator)} />;

       case 2:

       return <AddPerson onBack={()=>this.onBack(route,navigator)}/>;

       default:

       return <Login />;

       }         

      }

  }/>

   );

}

}

等你看完了这些,是否又有些想骂娘了,说好的学一次呢,又要重新学了。至于数据操作方式和ReactJs中并非无差别了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值