看板 Ajax 關於我們 聯絡資訊
※ 引述《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。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.141.112.234 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1593152563.A.BB4.html ※ 編輯: BugofBook (220.141.112.234 臺灣), 06/26/2020 19:05:33
a5772803: 謝謝book大的回文 請受小弟一拜 06/27 22:21
最近正在找新工作,剛好開始學React-native。FaceBook上有react-native的社團,那裡 高人比較多。 ※ 編輯: BugofBook (36.228.37.114 臺灣), 06/28/2020 08:56:22
imjeffreylee: 推 07/08 06:07
kurtisgod: 好文推 07/09 15:50
onininon: 好文推 07/28 09:51