无状态函数(Stateless functions)是一种非常好的方式来定义可复用组件,它们内部不保存状态state
或者引用refs
,仅仅是函数。
|
|
无状态函数(Stateless functions)是一种非常好的方式来定义可复用组件,它们内部不保存状态state
或者引用refs
,仅仅是函数。
|
|
看ReactNative源码时,js部分中的require根常识中认为的加载方式不一样,真是困扰好久。
举个例子,在 webView.ios.js
文件的头部:
|
|
ActivityIndicatorIOS
的实际位置是Libraries/Components/ActivityIndicatorIOS/ActivityIndicatorIOS.ios.js
而EdgeInsetsPropType
的实际位置是Libraries/StyleSheet/EdgeInsetsPropType.js
这里怎么能直接require的,难道有隐藏的搜索路径设置?
FB的官方ListView例子中,使用了一个RecyclerViewBackedScrollView作为ListView
的内部scrollView。ListViewExample.js
|
|
从名字上看很不错,“可重用的”,应该能解决性能问题。但是实际情况呢?
先直接告诉你,实际不是你想象的。
许多的React库都需要在所有的组件树中传递数据。比如说,Redux需要传递他的store,而React Router需要传递当前的地址。
一个看似可行的方案时使用共享的可变状态,但这只能在客户端使用。当我们需要使用服务器端预渲染时,这种方案不可靠。
所幸,React提供了一种自上而下传递数据的途径: context。我们可以把它看做组件树的一个全局变量。
在app的最外部,我们可以提供一个Provider,它的唯一角色就是给当前的组件树的context增加数据,来提供给所有的子节点使用。
我们将使用”主题”的例子来解释这个模式: 我们需要将自定义的主题信息传递到app的每个地方。
加一个内置的样式就可以了:
就是navigationStyles={Navigator.NavigationBar.StylesIOS}
通常情况下,package.json
中的dependencies
是像下面这样定义:
|
|
即包名 + 版本号
定义的,这种情况下,运行 npm install
时npm会在自己的服务器上搜索该包并下载到本地的node_modules
目录。
其实npm同时还提供了另外几种方式来指定包的来源: