使用React Native的第一印象
Facebook提供了一種編寫原生移動應用的效果的框架,稱為:React Native,你可以使用Javascript編寫可媲美原生iOS或安卓元件的效果。
James Long在過去幾個月研究學習了Ember, Angular, 和 React,得到了很多Web元件的思想,這些框架都是以不同方式解決類似的問題,有些是衝突,有些是可和諧相處的。
James Long主要關心資料繫結和元件化componentizing UI,在研究了上面這些技術框架後,他認為React提供了最好的解決方案。
James Long在First Impressions using React Native一文中描述瞭如何使用React Native在瀏覽器實現3D等原生應用程式才能開發的效果。
React Native還沒有完全開源,Facebbook正在進行清理程式碼等準備工作,他們應該會更快地開源。
關於跨平臺原生應用目前主要由JavaScript. Titanium, PhoneGap驅動,這些專案都有一個短處,要麼你將Web應用包裝在一個Web瀏覽器中,要麼他們試圖模仿HTML/CSS,然後,你換可以直接和原生物件互動,但是這容易造成很大效能問題,React Natice實際在單獨執行緒實現佈局layout,這樣主執行緒是自由的,能夠聚焦一些平滑的動畫等。
React Native使用JavaScriptCore 在iOS中執行Javascript,最重要部分是它以單獨執行緒執行Javascript(Titanium也是這麼做),你能使用Javascript編寫元件,就像你在使用React.js一樣,除了不使用div和a,而是使用View和Text,你能得到React所有構建UI的組合優點。
React Native會獲取你的UI然後傳送少量的資料到主執行緒,使用原生元件來渲染介面,View是一個UIView,最精彩的是你不必關心更新UI,你只要基於一些狀態宣告渲染即可,React會使用不同演算法計算你的改變和實際介面之間的差別,然後只傳送這種差別資料到實際介面進行渲染。(注:這是React.js最核心的一部分,體現效果是速度效能快)
編寫原生UI從來都不是很容易,而使用JS編寫動畫不會有效能問題,因為JS執行在單獨執行緒。
該文展示了一個使用React Native編寫的OpenGL 3D應用:
James Long在過去幾個月研究學習了Ember, Angular, 和 React,得到了很多Web元件的思想,這些框架都是以不同方式解決類似的問題,有些是衝突,有些是可和諧相處的。
James Long主要關心資料繫結和元件化componentizing UI,在研究了上面這些技術框架後,他認為React提供了最好的解決方案。
James Long在First Impressions using React Native一文中描述瞭如何使用React Native在瀏覽器實現3D等原生應用程式才能開發的效果。
React Native還沒有完全開源,Facebbook正在進行清理程式碼等準備工作,他們應該會更快地開源。
關於跨平臺原生應用目前主要由JavaScript. Titanium, PhoneGap驅動,這些專案都有一個短處,要麼你將Web應用包裝在一個Web瀏覽器中,要麼他們試圖模仿HTML/CSS,然後,你換可以直接和原生物件互動,但是這容易造成很大效能問題,React Natice實際在單獨執行緒實現佈局layout,這樣主執行緒是自由的,能夠聚焦一些平滑的動畫等。
React Native使用JavaScriptCore 在iOS中執行Javascript,最重要部分是它以單獨執行緒執行Javascript(Titanium也是這麼做),你能使用Javascript編寫元件,就像你在使用React.js一樣,除了不使用div和a,而是使用View和Text,你能得到React所有構建UI的組合優點。
React Native會獲取你的UI然後傳送少量的資料到主執行緒,使用原生元件來渲染介面,View是一個UIView,最精彩的是你不必關心更新UI,你只要基於一些狀態宣告渲染即可,React會使用不同演算法計算你的改變和實際介面之間的差別,然後只傳送這種差別資料到實際介面進行渲染。(注:這是React.js最核心的一部分,體現效果是速度效能快)
編寫原生UI從來都不是很容易,而使用JS編寫動畫不會有效能問題,因為JS執行在單獨執行緒。
該文展示了一個使用React Native編寫的OpenGL 3D應用:
實現程式碼也很簡單,試圖渲染部分:
var ObjList = React.createClass({ // a few methods clipped.... selectModel: function(file) { //呼叫Objective-C方法 controller.loadMesh(file); }, renderRow: function(file) { return View( null, TouchableHighlight( { onPress: () => this.selectModel(file), underlayColor: 'rgba(0, 0, 0, .6)' }, Text({ style: { height: 30, color: 'white' }}, file) ) ); }, render: function() { var source = this.getDataSource(this.props.files); return ListView({ style: { flex: 1 }, renderRow: this.renderRow, dataSource: source }); } }); <p class="indent"> |
相關文章
- React Native——react-navigation的使用React NativeNavigation
- React Native 使用 react-native-webview 渲染 HTMLReact NativeWebViewHTML
- react-native-root-toast的使用ReactAST
- react-native TextInput 使用React
- React Native - react-native-code-push-熱更新外掛的使用[譯文]React Native
- react-native使用redux 存在的坑ReactRedux
- React Native物理back返回鍵的使用React Native
- 在react native中使用hooksReact NativeHook
- [React Native]react-native-scrollabReact Native
- React Native填坑之旅--使用react-redux hooksReact NativeReduxHook
- React Native在Instagram的使用經驗React Native
- react-native-vector-icons 使用React
- React Native Icon方案:react-native-svgReact NativeSVG
- React Native轉web方案:react-native-webReact NativeWeb
- iOS React Native 混合開發整合React NativeiOSReact Native
- React Native學習之 ListView 的簡單使用React NativeView
- react-native-xunfei-speechrecognizer外掛的使用(iOS)ReactiOS
- React Native 的未來與React HooksReact NativeHook
- [譯] Airbnb 在 React Native 上下的賭注(四):React Native 退役AIReact Native
- React Native——使用SectionList改造電影列表React Native
- react-native 使用leanclound訊息推送React
- [譯] React Native 中使用轉場動畫!React Native動畫
- react-native配置react-native-image-crop-pickerReact
- React Native 上手React Native
- react-nativeReact
- react native FlatListReact Native
- Hello React NativeReact Native
- React Native --踩坑記 之 建立指定 React Native版本的專案React Native
- 關於Ionic、React Native、Native的那些事React Native
- React Native / React除錯技巧React Native除錯
- 《React Native高效開發》之create-react-native-appReact NativeAPP
- RN幾種腳手架工具的使用和對比(react-native-cli、create-react-native-app、exp)ReactAPP
- 如何在 React Native 專案中使用 MQTTReact NativeMQQT
- React-Native flex 佈局使用總結ReactFlex
- 使用duxapp開發 React Native App 事半功倍UXAPPReact Native
- redux在react-native上使用(四)–connect使用ReduxReact
- React Native遇到的問題React Native
- react native的notifee訊息React Native