Re: [問題] React native 新手

作者: BugofBook (數學書蟲)   2020-06-26 14:22:35
※ 引述《a5772803 (無盡之痕)》之銘言:
: 小弟公司主要是寫 laravel的
: 目前想要走向app的開發
: 想要從React native下手
: 但是大家都沒有 android ios 相關的開發經驗
: 如果直接開始寫的話 要去補充什麼知識呢
: 小弟有寫過一點點的android 知道是activity
: 做跳轉
: 感覺跨平台還需要一點原生的知識
: 想要再找android、 ios、 react native的書來輔助開發 請問這樣的方向是對的嗎
: 還有看到vuex這個東西看的很模糊
: 目前暫定是準備這些東西 搭配expo進行
: 請多多指教!
先說結論吧,如果你們公司想要使用React-native來開發app,建議開個職缺直接找專業
的前端來比較好。不管是開發進度或是除錯都會比較好。
========================================
以下是小弟我的不太專業的前端的跨平臺開發+React-native的介紹
網頁和移動裝置的APP差很多。把網頁的程式碼做成APP就像是讓IOS或Linux能直接使用
windows的應用程式一樣的麻煩。為了解決這個麻煩,有許多的套件或方案不斷的開發
出來,而這些跨平臺開發方案大約可以分成二個世代:包含cordova在內的第一世代
,包含React-native在內的第二世代。
第一世代的東西小弟我沒有學過,只能大概說明一下。cordova是使用cordovaAPI來取代
網頁的DOMAPI,這樣就能在移動平臺上用APP的外觀來跑網頁應用程式(看起來像APP的
網頁)。缺點也很明顯,這個方案做出來的APP和原生的APP就是有效能上的差別,而且原
生網頁沒有的功能cordova也不會有(比方說鍵盤鎖)
第二世代的方案原理很簡單。不考慮現實層面,想讓linux上能使用windows的應用程式最
簡單的方法就是告訴windows應用程式windows系統的指令和linux系統指令的對應關係,這
樣windows應用程式就能自動做出和linux原生應用程式一樣的效果了。
第二世代的方案的原理就是把移動裝置上的程式語言的API包裝成javascript的API讓
javascript使用。這樣在切換移動平臺時,只要更換對應的API就好,主程式可以不用變
動。以laravel來說明的話,如果資料庫要從MySQL換成MongoDB,只要把model層呼叫
MySQL的部分換成呼叫MongoDB就好,PHP的其他部分都可以不用更動。第二世代的方案相
比第一世代的方案,執行速度會比較快,但如果原生平臺有出現新的API,程式設計師可
能要自己寫包裝用的API。
第二世代的方案現在主要有三種,NativeScript、React-native和Electron。
React-native是React系統的一部分,是用來和React組合的跨平臺開發方案。
NativeScript是獨立的套件,有普通javascript、Angular和Vue三種開發模式。
而Electron是桌面端限定的套件。
======
以下是React的小小說明
======
React和Angular、Vue常被稱為三大前端框架。但React有一些特點是另二個框架沒有的。
1. 學習曲線非常高,除了本身的JSX語法之外,開發者至少要熟練ES6以上的語法,這些
都不是Javascript初學者能快速掌握的。(雖然官方文檔有說可以不用學JSX或ES6就能寫
React,但小弟我實在是不想看沒有使用JSX和ES6寫出來的程式碼)
2. Angular和Vue和laravel都是使用MVC架構(嚴格來說,前端是MVVC架構),React勉強
能說是只有V的架構,好處是可以和其他套件組合(可以使用React + Vuex + Vue-Router
,但不建議這樣玩,因為Vue的套件都不太能和其他套件組合),缺點是要知道許多套件。
考慮到lavarel內建的前端是好上手的Vue,我下面介紹時會以Vue來當對比
網頁應用
V MV C
Vue: Vue + Vuex + Vue-Router
React: React(+React-dom) + Redux(+React-redux + ...) + React-Router
React的各種平臺使用
網頁原生:React(+React-dom)
Android :React(+React-native)
IOS :React(+React-native)
Windows :React(+React-native+React-native-windows)
Mac :React(+React-native+React-native-macos)
========
以下是React-native建議的學習順序
========
1.學習React:這包含了JSX,ES6還有一些常用的套件(比方說Redux,react-router)
2.學習React-native中的Expo的部分,這樣就可以利用React-native寫出足夠支援大部
分跨平臺所需要的功能
3.學習Android和IOS的程式語言,這樣才能使用React-native還沒有支援的特定原生平臺
的API。
作者: a5772803 (無盡之痕)   2020-06-27 22:21:00
謝謝book大的回文 請受小弟一拜
作者: imjeffreylee (昌)   2020-07-08 06:07:00
作者: kurtisgod (蹦蹦蹦)   2020-07-09 15:50:00
好文推
作者: onininon (萬)   2020-07-28 09:51:00
好文推

Links booklink

Contact Us: admin [ a t ] ucptt.com