【0.45】React Native 中文更新日志
2017-06-19 本文已影响307人
Marno
- 本文为 Marno 原创,转载必须保留出处!
- 公众号【 aMarno 】,关注后回复 RN 加入交流群
- React Native 优秀开源项目大全:http://www.marno.cn
一、重大变化
- 移除从 ‘react-native’ 中导入 React 的错误警告
从 ‘react-native’ 中导入 react 模块早在 0.25 的版本中被比标记为过期,现在如果再继续这样导入会直接报错。
- 更新 podspecs ,使其支持并且默认使用 C++ bridge(iOS)
如果你正在使用 Cocoapods, 你必须更新你的 Podfile ,给其中的 React subspec 添加 ‘BatchedBridge’ 或 ‘CxxBridge’ 的依赖。
二、新特性
Android平台
- 在 YOGA 中向 java 提供 setPointScaleFactor() 方法
- 向 Java 提供打印方法
- 在 CameraRoll 中允许显示手机中的视频
- 在 DevServerHelper 中添加 symbolication 支持
- 将 openStackFrameCall 添加到 DevServerHelper
- 在 ReactRootView 添加 appProperty
- 在启动期间提高 RN 线程的优先级
- 如果 UIBackground 线程可用,则在 UIBackground 线程中进行断言
- 添加标记用来测试在 native 模块线程以外的独立线程中运行 BG UI 操作
- 添加明确的错误信息当 e.getMessage 为空时
- 重构 interfaces
- 提供了创建后台 UI 线程的能力
- 添加了更多的 systraces
- 用 try/finally 将 CREATE_MODULE 和 INITIALIZE_MODULE markers 包裹起来
- 不在 UI 线程运行 setupReactContext()
- 在使用完 DraweeControllerBuilder 后进行清除
- 启动从 ASyncTask 到 Thread 的转换
- 降低 native 模块和 JS 线程的线程优先级
iOS平台
- 使用 CameraRoll 可以显示手机中的视频了
- 在 iOS 中会提示更多的 verbose 级别的错误信息
- 添加重置 CxxModuleWrapper's 模块指针的 API
- 从树中移除 RCTBatchedBridge rule 以及所有的使用
- Split off websocket related items to RCTPackagerConnection
- 从 RCTRootView 初始化时立即触发 renderApplication 方法
- Native 动画 - 在 iOS 上支持 decay 动画
- Port perf metrics used in RCTBatchedBridge
- 在 iOS 的 native 模块中添加了对同步方法的支持
- 在 RCTShadowView 中采用 Yoga's YGConfig
- 清除 Xcode 项目中对 UIExplorer 的引用
- 将 Merge RCTPackagerClient 合并到 RCTPackagerConnection 中
- 从 Xcode 项目中移除对 RCTPackagerClientResponder 的引用
- 引入 RCTAssertUIManagerQueue()
- 引入 RCTUIManagerObserverCoordinator ,一种新方式订阅来自 UIManager 的粒度通知
- 当载入脚本失败时抛出异常
- 从 NetworkingModule 中移除对 WebWorker 的支持
- 从 Timers 中移除对 WebWorker 的支持
- 放弃对 WebWorkers 的支持
- 避免在正在关闭的 view controller 上显示其他控件(Alert 和 Modal 的问题)
- 在 Redbox 中提示列表嵌套异常
- 对 Apple TV 的支持: 为 ART library 添加在 tvOS 上的构建支持
- 通过 bridge 暴露 shake-to-show dev menu 设置
- 在 tvOS 模拟器中启用 dev menu
iOS / Android 通用
- 当组件组件卸载时需要将 TouchableHighlight 的 _isMounted 设置为 false
- 自定义 build 配置: 移动 transform 配置到自己的属性中
- 修复误报 isMounted() 方法过期的警告
- CLI: Stronger typing for transformers
- CLI: Disable no-alert eslint rule for node code
- CLI:去掉 Config 中的 FBism
- CLI: 在 callsite 中解析路径而不是在 Config.loadFile 中
- CLI: 修复 Promise 解决回掉错误
- 修复 <TextInput> 组件多行模式时候默认占位文字的颜色
- Allow calling NativeViewHierarchyManager.addRootView() off the UI thread
- FlatList: 使用 $ReadOnlyArray 来代替 SectionList 中的 Array 来保存 SectionItemT
- FlatList: 将 section key 变为可选参数
- FlatList: 多项改进
- FlatList: 优化 VirtualizedList 进行更新的触发机制
- FlatList: 将 getItem 和 getItemCount 设置为必须属性 (VirtualizedList)
- FlatList: 添加 ListEmptyComponent 属性
- FlatList: 修改 separators.updateProps 属性的前 / 后顺序
- FindNodeHandle properly handles ReactCurrentOwner current Fiber type
- 将 React 版本从 16-alpha6 同步为 16-alpha12
- Open in editor fix, show tip instead of error
- 解决 parseFloat 错误使用 "radix" 的问题
- 在 processColor.js 添加 flow
- YellowBox 中添加可以忽略警告的方法
- 重构 MessageQueue
- 将 bundle 中的 module 按照路径进行排序
Yoga
- 给 Java 提供 setPointScaleFactor 方法
- 给 Java 提供 print 方法
- 将测量的 nodes 大小作为四舍五入时的最小约束
- 在 RN 中禁止 yoga 进行四舍五入
- 从实验性特征中移除四舍五入的特征
- Move reset into yoga node and don’t set overflow as it has no effect
- 通过简化调用来修复 useLegacyStretchBehaviour 标记
- Fix flex-wrap with max constraint
- Fix sizing of non stretch items
- 使测量方式更像 web 中的测量方式
- 将 YGLogger 移入 YGConfig 中并且把 YGNodeRef 与 log events 相关联
- New round-to-pixel-grid algorithm that fixes possible subpixel gaps between sibling nodes
- Assertion on attempt to get layout metrics from dirtied Yoga node
- 添加 YGConfigCopy
Packager
- 将 node-haste 下的 index 重命名为 DependencyGraph
- Packager - 修复在 windows 中的 symbolicate
- 不在启动时连接 websocket ,也不在停止时断开 websocket 连接
- 当关闭 socket 时调用 onDisconnected() 而不是 onConnected()
- 移除没有用到的 hash
- 将 packager 的 inspector 超时时间从 5s 增加到 30s
- ModuleGraph: 包括所有可能的 asset 类型
- 优化 assets' JS
- Worker-farm: 隔离 stdout / stderr
- 正确处理 babel 忽略的文件,只返回内容
- Force 'default' transform variant to be present
- 使构建 bundle 的函数为异步执行
- 从 Bundler 中抽取可复用的逻辑
- Separate node polyfills from runtime transforms
- 统一 source map 类型
- 修改 postprocessing hook 使其能在 ModuleTransport 实例上运行
- Inline plugin: type options
- 使 test 从 side effects 独立出来
- 从 cache key 中移除不相关的选项
- Stronger typing for transform options / remove duplication
- 修复 module system 和 polyfills 的路径
- 修正对 haste packages 的支持
- Fix release / minified bundle builds
- 更快的 terminal 反应
- Fork local version of worker-farm
- ResolutionRequest: keep option object as it is
- Buck worker: output assets
- Buck worker:更好的类型
- Worker:强化 TransformOptions
- AssetPathUtils: @flow
- GlobalTransformCache: throat() 文件读取方法
- 移除最后使用的 declareOpts 的部分并用 Flow 类型代替
- TransformCache: 保存最后一次进行缓存的时间
- TransformCache: 包含 UID + 不再使用 base64
- 更新 jest-runtime 到 19.0.3 版本
- Buck library: expose asset content
- Buck library: aggregate assets
- AssetServer: @flow
- getAssetDataFromName: @flow
- GlobalTransformCache: 将 transform 配置摘要进行缓存
- GlobalTransformCache: 修复无约束函数
- Add support for relative files with custom extensions
- 正确转换 assets 以避免字符串
- worker-farm/lib/fork.js: cleanup
- worker-farm: 传递明确的 execArgv 给 workers
三、修复 Bug
Android平台
- 修复当点击设置中的“Comments”时导致的奔溃
- 修复设置了 z-index 属性的组件触摸目标不准确的问题
- 修复 Inspector 中 Page 构造函数提示 NoSuchMethodError 的问题
- Fix Nodes not having correct view managers externally
- 修复在使用 <Modal> 时造成状态栏颜色加深的问题
iOS平台
- 修复当在 cli 参数中明确了 scheme 时执行 run-ios 命令出现的问题
- 修复 RCTMultipartDataTask 中的内存泄露
- 修复在 RCTTouchEvent 中由 NaN 值引发的奔溃
- 修复 RCTAnimation 中头文件的问题
- 在 npm package 配置中添加 third-party-podspecs
- 修复在使用 react-native-tooltip 时出现的自动添加 “Cpoy” 选项的问题
iOS / Android 通用
- 将 XMLHttpRequest 中的 withCredentials 默认值改为 true
- 在公开的 API 中提供 findNodeHandle() 方法
- 修复 TouchableHighlight 中的警告