顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2020-06-28 11:23:26
看板 Ajax
作者 BugofBook (愛書蟲)
標題 Re: [問題] React native 新手
時間 Fri Jun 26 14:22:35 2020


※ 引述《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 (臺灣)
※ 文章代碼(AID): #1UzPGpkq (Ajax)
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1593152563.A.BB4.html
※ 編輯: BugofBook (220.141.112.234 臺灣), 06/26/2020 19:05:33
a5772803: 謝謝book大的回文 請受小弟一拜1F 06/27 22:21
最近正在找新工作,剛好開始學React-native。FaceBook上有react-native的社團,那裡
高人比較多。
※ 編輯: BugofBook (36.228.37.114 臺灣), 06/28/2020 08:56:22

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 72 
作者 BugofBook 的最新發文:
  • +1 Re: [問題] React native 新手 - Ajax 板
    作者: 220.141.112.234 (台灣) 2020-06-26 14:22:35
    先說結論吧,如果你們公司想要使用React-native來開發app,建議開個職缺直接找專業 的前端來比較好。不管是開發進度或是除錯都會比較好。 =========================== …
    1F 1推
  • +5 [閒聊] 有沒有從義大利來的都喜歡搞小團體的梗? - C_Chat 板
    作者: 111.251.96.6 (台灣) 2012-09-07 20:15:20
    在看Campione第八集艾莉卡提出"圓桌計劃"的時候,我就覺得好像有看過類似的劇情 。直到聽說我從守護者之戰後就再也沒看過、只偶爾看看電視版的家庭教師好像快完結了 。這才提醒了我 …
    9F 5推
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇