想必也没什么人爱看更新日志这种东西,所以我直接总结一下好了。整体而言修复了一些以往版本的bug,在Android和iOS平台上各增加了一些无关痛痒小功能。还宣称提高了检测属性变化的效率,因为属性变化就意味着重新render,所以按官方的说法这次更新是对属性变化的检测也更为严格了。但到什么程度,还未知。
至于很多人关心的效率方面,似乎这个版本并没有太大的提升。毕竟属于日常升级,所以也是情理之中。
但是亮点还是有:
1. 属性支持百分比参数了,目前仅支持(padding,margin,width,height,minWidth,minHeight,maxWidth,maxHeight,flexBasis)。使用方法:padding:'30%'
2. init project 的时候,可以选择创建带有一些常用页面的模板工程了。但是目前好像模板还比较少,具体可以点击阅读全文。比较期待这个功能,要是可以支持自定义模板就好了。
差不多就这些,想看详细内容的可以继续往下看。想看英文原文的请点击阅读原文。翻译的比较水,没人给校正,各位随意看看就好了!
iOS/Android双平台:
优化属性发生变化时的验证方式和效率
Android平台:
新创建的应用 windowSoftInputMode 默认的模式发生改变。
现在所有通过react-native init所创建新项目,在 Android 平台上将 Activity 的 windowSoftInputMode 属性由之前默认的 adjustUnspecified,改为 adjustResize。通过这种 Native 方式解决 Android 上键盘遮挡输入框的问题,而不再使用JS的解决方式,比如之前用到的 KeyboardAvoidingView组件。
移除 JSBundleLoader.getSourceUrl() 方法。
如果你使用到了以下API:
1.JSBundleLoader.getSourceUrl()
2.ReactInstanceManager.getSourceUrl()
3.ReactInstanceManager.getJSBundleFile()
现在必须改为调用:
1.CatalystInstance.getSourceURL()
2.JSBundleLoader.loadScript()
移除 RecyclerViewBackedScrollView 组件
这个组件是很久之前为了解决 scroll-back-when-data-is-added 这个bug而添加的,但是现在已经直接通过ScrollView内部代码解决了这个问题。
1.iOS/Android双平台:
WebView 组件新增 injectJavaScript 方法
该方法支持直接向 WebView 组件注入 JS 代码,但是并不可以用于在页面加载完后执行 JS 代码。
2.Android平台:
让布局动画遵守样式中设置的不透明度
Text 组件新增 selectionColor 属性
ScrollView组件新增 overScrollMode 属性
实现自定义基线函数的Java绑定
TextInput:避免二次触发 onSubmitEditing
通过 Native 代码实现 ScrollView.scrollToEnd
支持从Java同步钩子调用和返回任意类型
Switch 组件支持 tintColor 和 thumbTintColor 属性
Slider组件支持自定义 thumb,track,progress 属性
为 dynamics 添加 null 检查
在BUCK文件中添加缺少的导入
引入 FallbackJSBundleLoader
改进在 Text 组件中嵌套组件时的报错机制
在 pointerEvents 设置后仍允许组件折叠起来
修改 WebView 的 DomStorageEnabled 属性默认值为true
允许将 view manager 当做 Native模块访问
不需要 DevSupportManager 去创建一个 DevInternalSettings
删除 ModuleRegistryHolder
使 NativeArray 的消费变为显式
3.iOS平台
给 AlertIOS.prompt() 方法添加一个 keyboardType 参数
为 RCTEventEmitter 添加使用说明文档
删除 RCTExecuteOnMainThread 的弃用警告
在 RCTTouchHandler 中添加新的方式处理并发手势识别
RCTTouchHandler 不再延迟任何触摸
删除过期方法 'RCTExecuteOnMainThread'
在新 bridge 上禁用RCTPerfMonitor
更新 NativeComponentsIOS.md 文档
RCTConvert:不推荐使用NSStringArray typedof
去除 NativeModules 中的 RK/RCT 前缀
添加在app 启动时开启 sampling profiler 的选项
为考虑 ABI 兼容性使用 int 代替 NSInterger
停止将未使用的 JS 文件复制到 Pods 文件夹中
在没有 bundle 时候显示 redbox
按下重新加载时自动关闭 redbox
'cannot calculate shadow efficiently' 不再会报警告
更好的执行 intrinsicContentSize
将 setFrame, setLeftTop 等方法弃用或者删除
UIManager.measure() 支持任意 zoom 效果下的 view hierarchy
向 JS 提供 Native 运行的环境和参数是测试、开发还是生产环境模式
可以通过配置环境变量禁用 yellow box 警告
4.其他
更新 React 版本到 15.4.1。
为组件的部分属性添加百分比支持,目前支持(padding,margin,width,height,minWidth,minHeight,maxWidth,maxHeight,flexBasis)。
JSC堆捕获将其他 roots 添加到可视化。
为 ScrollView 和 ListView 添加 scrollToEnd 方法。
Packager: 内部增加记录错误的程序。
在 node_modules 下添加 symlinks 作为projectRoots 的一部分。
添加 cell size 到 JSC heap capture visualization。
为 Navigation.Header.BackButton 添加 style 和 imageStyle 的属性。
可以通过 'react-native' 命令创建制定类型模板的项目
通过 'react-native init' 初始化项目时创建README
可以通过 'react-navigation' 直接创建带有导航器的项目
通过 Yarn 安装或卸载包
通过 package.json 脚本运行程序
更快的生成 source map
High-perf source map builder
在 AnimatedValueXY 中添加 removeAllListeners 方法
可以控制 image 的缓存策略
支持在Windows上复制到剪贴板
使用 fbjs/lib/invariant 替代 invariant
允许在场景堆栈上设置自定义样式
将C ++ bridge 移到oss目录中
XHR: support typed arrays for request payloads
通过 NativeAnimated 可以驱动任何数字的属性
确保文档的链接地址正确
避免在 TextInput 中出现空的 _inputRef
允许在调试器视图中使用深色背景
当 row 被滑动到关闭的位置时,适当的清除 openRowID
取消 SwipeableQuickActions 中对 action 的最大限制(之前限制为2)
允许长宽比超出父组件的边界
将 TextUpdate 的padding 信息转移到 text input 组件上
不限制在大小为0的父组件中使用 absolute 定位子组件
1.iOS/Android双平台:
修复子组件尺寸溢出父组件时该父组件的大小
在 Native 的代码中修复了 skew transform
2.Android平台:
修复在 dev 模式下 JSC 崩溃问题
修复在 startup 时候抛异常的问题
修复 ListView 滑动阻塞问题
修正在 NativeModulesAndroid.md 文件中的错别字
修复 UIExplorer 进入破碎状态
修复调用 webview.postMessage 时抛出 not a constructor in WebView 的问题
修复 TextInput 的占位字符自定义字体无效的问题
修复 UIViewOperationQueue 中的潜在 NPE
修复在动画状态时的组件使用 LayoutAnimation 动画开始位置错位
重置 pointerEvents 为空值
3.iOS平台
修复 TextInput 在开启校正功能后自动回调 onChange() 方法的问题
修复正式版测试用例:添加 -ObjC and -lc++ 测试目标
修复 passThroughTouches
修复 nil TVView on pop
修复在编译时关于索引类型不正确的警告
通过添加 __unused args 标记来修复其他编译警告
使 CocoaPods 可用
4.其他
纠正 PixelRatio.md 中的拼写错误
修复在 VerticalSwipeJump 模式下手势返回方向错误的问题
修复 node4 上的打包程序崩溃的问题
修复通过 HTTP 加载 minified bundle 的问题
修复在使用 min-size 约束时换行的计算方式
修复 skew transformation
纠正在 Yoga classes 中的拼写错误
纠正 webview 示例中字符串信息的拼写错误
纠正 ResolutionRequest.js 中的拼写错误
修复在 align-item 或 justify-content 使用center或flex-end时 absolute position 出现的问题
修复导航器场景被错误地折叠
修复使用 margin 时的长宽比不准确的问题
修复 app 无故崩溃的问题(终于修复了!!!)
打破仅在调试环境中发生的无限循环