React Native render()分析

RN的render()函数实际上跟iOS的ViewDidLoad()函数相似,返回的就是具体的内容,内容很固定,只能是一个<View>,如以下代码:

export default class Demo extends Component {
  //初始化方法  --> ViewDidLoad --> 返回就是具体的内容
  render() {
    return (
  <View style={myStyle.container}>
      <Text>我在这里</Text>
      <View style={myStyle.innerViewStyle}>
        <Text>我是里面的View</Text>
      </View>
       <View style={myStyle.nextViewStyle}>
      <Text>我是最下面的View</Text>
    </View>

  </View>

);
  }
}

在render()函数的最外一层如果再加一层view会报错,就像iOS中的rootViewController,一个Controller只能有一个rootView。
我们再看下,RN的render()函数中的根<View>是怎么跟iOS关联的?

index.ios.js

这行代码的意思是在'Demo'的项目中,导出组件Demo(() => Demo),而组件Demo就是我们一开始写的那段代码

export default class Demo extends Component

然后在苹果项目中的AppDelegate.m文件,我们可以看到如下代码


AppDelegate.m

这个rootView就是我们组件Demo里的根<View>!这样就关联上了。当然因为需要RN又在中间封装了很多层view,我们用Xcode分层功能可以看得出来,如下图:


image.png

的实际结构是:

分层.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,665评论 25 708
  • React Native 1.React Native之了解 1.1 Native开发优势: Native的原生控...
    兵兵哥哥阅读 1,235评论 0 0
  • 2017年 7月26日 100天阅读分享-10 一、【阅读书名】《6点27分的朗读者》 二、【阅读字数】 6....
    木樨木阅读 611评论 0 4
  • 从呱呱坠地,死就已经在前方了。死,不可怕。怕是死前的万恶的挣扎。 故,生来不俱死,死了也不知。顺其自然~天然做自己!
    铭祖君O阅读 282评论 0 2
  • 养三个月左右的猫咪并不是什么难事,你只需给它节育,少食多餐喂养,打些预防针就可以茁壮成长。 奶猫二十来...
    晓来樱桃阅读 4,562评论 7 0

友情链接更多精彩内容