【0.42】React Native 中文更新日誌
- 本文為 Marno 原創,轉載必須保留出處!
- 公眾號【 aMarno 】,關注後回覆 RN 加入交流群
一、前言
想必也沒什麼人愛看更新日誌這種東西,所以我直接總結一下好了。整體而言修復了一些以往版本的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 定位子元件
四、修復Bug
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 無故崩潰的問題(終於修復了!!!)
- 打破僅在除錯環境中發生的無限迴圈
相關推薦
【0.42】React Native 中文更新日誌
本文為 Marno 原創,轉載必須保留出處! 公眾號【 aMarno 】,關注後回覆 RN 加入交流群 一、前言 想必也沒什麼人愛看更新日誌這種東西,所以我直接總結
【備忘】react native 開發跨平臺github
百度網盤 第1章 專案需求分析、效果演示、功能分解,技術分解、開發計劃制定,首頁導航架構設計 第2章 專案基礎功能開發(ListView、下拉重新整理、上拉載入更多、APP啟動引導流程) 第3章 Popular(最熱)模組開發(AsyncStorage資料庫技術、離線快取)
【巨能坑】react-native的大坑,不定期更新
注:寫頁面時,當子元件是<Text>時一定不要固定父元件的寬高。 ----------------------------------------------------------------------------------------------
【RN踩坑】React-native 0.45版本以上出現 boost_1_63_0.tar.gz等錯誤
請先下載第三方依賴檔案 下下來後請放置到 ~/.rncache 目錄 比如你可以開啟終端,輸入 # 井號表示註釋,不要複製井號開頭的句子 # 進入~目錄,即使用者目錄 cd ~
【React Native開發】React Native控件之ProgressBarAndroid進度條解說(12)
ice 發現 來講 top 文章 func dev all ios 轉載請標明出處:http://blog.csdn.net/developer_jiangqq/article/details/50596367本文出自:【江清清的博客】(一)前言 【好消息】
【 分類 】- React Native
專欄達人 授予成功建立個人部落格專欄
【共享單車】—— React後臺管理系統開發手記:Router 4.0路由實戰演練
前言:以下內容基於React全家桶+AntD實戰課程的學習實踐過程記錄。最終成果github地址:https://github.com/66Web/react-antd-manager,歡迎star。 一、React Router 4.0核心概念 4
【React Native開發】React Native控制元件之Image元件講解與美團首頁頂部效果例項(10)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 今天我們一起來看一下Image元件的相關使用講解以及模仿實現一下美團首頁頂部分類的效果。具體環境搭建以及相關配置的請檢視之前
【React Native開發】React Native控制元件之TextInput元件講解與QQ登入介面實現(11)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 今天我們一起來看一下文字輸入框TextInput元件的相關使用講解以及模仿實現一下QQ登入介面的效果。具體環境搭建以及相關配置
【稀飯】react native 實戰系列教程之自定義原生UI元件
上一節,講了關於RN的自定義原生模組,本節是關於自定義原生UI元件,學習完本節,你將瞭解到原生UI元件的開發流程,以及js如何向native傳送命令和native如何向js傳送事件。 原生UI元件之VideoView視訊播放器開發 React Nativ
【REACT NATIVE 系列教程之九】REACT NATIVE版本升級步驟與注意事項!
由於React Native處於快速迭代發展中,因此元件功能的擴充套件、語法的變更也將會有較大的區別,因此升級版本則屬於務必掌握的了。昨天Himi剛從0.23版本升級到0.26,升級的主要原因有兩點:1. 一些元件在最新版本中加入了很多新的屬性,例如0.23版本中Modal動畫沒有最新的屬性:a
【React Native開發】React Native控制元件之ListView元件講解以及最齊全例項(19)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org今天我們一起來看一下ListView元件的使用詳解以及具體事例剛建立的React Native技術交流3群(496508742),Rea
【React Native開發】React Native控制元件之View檢視講解(7)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 現在幾講我們對於R
【React Native開發】React Native控制元件之RefreshControl元件詳解(21)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 今天我們一起來看一下RefreshControl下拉重新整理元件講解以及使用例項剛建立的React Native技術交
【React Native】React Native 的開發路(Windows 開發環境配置)
開發平臺環境(Windows) 1 必備的軟體 包括 vscode jdk python nodejs andriodstudio五個軟體 ,下載找度娘 安裝C++環境 編譯node.js的C++模組需要用到Windows SDK、mingw cygwin
【React Native】React Native的bind方法
這個問題其實是一個 JavaScript 中的問題。JavaScript中jQury的bind方法為選定元素新增事件處理程式,規定事件發生時執行的函式。 語法為: $(selector).bind(event,data,function) 也就是
【React Native】React Native中DrawerLayoutAndroid通過點選實現展開和關閉
React Native中,DrawerLayoutAndroid元件與Android原生開發中的DrawerLayout一樣實現側滑選單的效果。通過手勢左右滑動實現拉出與退出的操作,但是需要通過點選圖示或者文字就能彈出側滑選單該怎麼做呢? 這時就需要
【轉】react-native-wechat元件使用介紹
react-native-wechat 具有微信 登入,分享,收藏(v1.9.9+) 和支付的功能,適合iOS/Android 雙平臺使用 安裝 react-native-wechat //npm 安裝 npm install react-native-wechat --save //yarn 安裝 y
【React Native開發】React Native控制元件之DrawerLayoutAndroid抽屜導航切換元件講解(13)
轉載請標明出處:(一)前言 【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 今天我們一起來看一
【React Native】React Native之Could not get BatchedBridge,make sure...的問題
下載了一個專案,npm install安裝之後,再次執行,卻出現Could not get BatchedBridge,make sure your bundle is packaged correctly的錯誤。 長這個樣: 先說解決方法: 1 .