一思二想

Think with a wild mind!

Context定义和目的

Context 提供了一种在组件之间共享数据的方式,而不必显式地通过组件树的逐层传递 props。

应用场景

哪些数据会需要共享?

Context 设计目的是为了共享那些对于一个组件树而言是**“全局”的数据**,例如当前认证的用户、主题或首选语言。

阅读全文 »

图片、字体、视频、音频和其它你的App里用到的不是JavaScript的文件都被认为是资源(asset). 就比如说在在互联网上, 所有你通过http传输获取的东西叫资源。这一点跟移动app不同,在app里资源一般跟app本身的二进制文件打包在一起。

然而,在Expo中通过require引用的资源(例如<Image source={require('./assets/images/example.png')} />在编译的时候已经在本地文件系统存在了)跟在web中通过URL引用的资源(例如<Image source={{uri: 'http://yourwebsite.com/logo.png'}} />)是有区别的。Expo不保证通过web URL引用的这些资源的可用性,因为这些资源不在Expo的管理范围。另外,Expo本身无法获取任意Web URL的全部信息。当你的资源存在于本地文件系统的时候,打包器能够读取资源的基本元数据metadata,比如宽度、高度,然后将这些信息传递给你的App,所以你不需要明确指明某个图片的宽度和高度。然而当你使用远程web URL引用资源的时候,你就必须明确得指明宽度、高度这些信息,否则系统会默认使用0x0。 最后,我们也会看到两者的缓存机制也不同。

接下来是对require类型资源得详细解释,这些资源必须在编译的时候就已经在文件系统存在。而在通过远程URL引用图片资源的例子中,系统默认你知道怎么将一个图片上传到网络,并确保能够被web和移动App访问。

阅读全文 »
0%