1. 程式人生 > >【0.42】React Native 中文更新日誌

【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.42React 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 NativeReact Native 的開發路(Windows 開發環境配置)

開發平臺環境(Windows)    1 必備的軟體  包括 vscode  jdk  python nodejs  andriodstudio五個軟體 ,下載找度娘 安裝C++環境 編譯node.js的C++模組需要用到Windows SDK、mingw  cygwin

React NativeReact Native的bind方法

 這個問題其實是一個 JavaScript 中的問題。JavaScript中jQury的bind方法為選定元素新增事件處理程式,規定事件發生時執行的函式。   語法為: $(selector).bind(event,data,function) 也就是

React NativeReact 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 NativeReact Native之Could not get BatchedBridge,make sure...的問題

 下載了一個專案,npm install安裝之後,再次執行,卻出現Could not get BatchedBridge,make sure your bundle is packaged correctly的錯誤。 長這個樣: 先說解決方法: 1 .