欢迎进入WeGuess,觉得名字太丑请自行修改
我们先来说下我们这个项目的项目结构,因为react-native会根据平台的不同选择是从index.ios.js进入还是 index.android.js (其实并不完全是这样,我们暂不衍生)
WeGuess
-----src 工程源码目录
-----Common 存放工程公共方法包含sqlite,filesystem,network等公有化的内容
-----Framework 工程框架代码主要包含log
-----modules 项目模块,本项目是按照模块划分,按照模块划分的好处是让你模块于模块之间的逻辑相对独立,所有当前模块需要处理的内容都在同一个文件,同时这种思维让你在编写代码的时候需要减少模块之间依赖性,模块与模块之间没有相互调用的代码,调用过程逻辑另外进行封装处理,这也使得你的app更加有可塑性,可以任意的添加删除模块。
-----route 路由模块,即模块之间调用逻辑,可以放置framework下
-----store 状态管理(这个比较抽象,当我们讲到redux的时候再慢慢解释),可以放置到framework文件夹下
既然我们说进入一个app的文件是index.xxx.js 那么我们打开看,看看他到底都干了些啥。
import了AppRegistry 和 App
AppRegistry
按照官方的解释
AppRegistry is the JS entry point to running all React Native apps. App root components should register themselves withAppRegistry.registerComponent, then the native system can load the bundle for the app and then actually run the app when it's ready by invokingAppRegistry.runApplication.
简答来说AppRegistry是整个app在js的入口,通过这个入口注册的组件,并且加载需要用的程序文件包我们由浅入深,我们可以先不关注AppRegistry具体做了什么,只需要知道他是程序的入口,注册了组件并且加载了程序包,那么我们的程序包是什么?就是我们当前import的App
App
这个是来自我们src文件夹下的app.js文件,这是常见es6的import语法,目的是在当前文件下引用在app.js文件中公开的方法或者组件。当然这里也可以使用required,required是commondJS的语法,两者都可以达到一样的目的。有的朋友可能会问那么什么时候我们用import,什么时候我们用required呢?
来自大神的回答:required和import的区别
简而言之,当我们需要动态加载,懒加载组件的时候我们使用required,反之用import。所以对于我们app这个组件而言,他是我们程序第一个需要直观使用的组件,没有必要进行懒加载,所以我们使用import加载它。
让我们进入app.js来看一看 react-native(二) : Components