iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Modern Web

我不用Expo啦,React Native!系列 第 3

[Day3] 創建專案的時間到啦

  • 分享至 

  • xImage
  •  

這個專案決定給自己高一點的標準,使用TypeScript+Eslint的Airbnb規範

TypeScript是什麼

TypeScript是將JavaScript增加一些強型別語言的特性,像是變數需要加上型態(不過一定程度上也可以自動判斷型態),將很多開發上的錯誤都可以在編譯階段就被發現,大大降低日後Debug的難度。


首先務必先確認React Native的cli是新版本,不確定的話可以直接跳過這一步直接執行下一步的創建react-native的專案看看,如果失敗的話就重安裝cli吧

yarn global remove react-native-cli
yarn global add @react-native-community/cli

像我的就是舊的...可能是之前看影片時順手安裝的版本

然後創建專案

react-native init MyApp --template react-native-template-typescript

然後新增Eslint Airbnb規範

yarn add --dev eslint @typescript-eslint/eslint-plugin eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks

不論看幾次都覺得這串好長.../images/emoticon/emoticon33.gif


創建出來的專案資料夾長這樣
https://ithelp.ithome.com.tw/upload/images/20200903/20121828zmmLhqshwj.png
可以看到雙平台的兩個資料夾,之後兩個平台的設定要更改就是在各自的資料夾進行

/android
/ios

跟Create React App不同的是沒有src的資料夾
所以我自己還是創了一個,以後component或是asset等等的東西放在裡面
讓外層的東西不要再繼續增加了


偶爾在開發時會遇到eslint跳紅字
但實際上只是個人撰寫習慣的問題(像是需不需要分號之類的)
可以打開.eslintrc.js這隻檔案修改規則
https://ithelp.ithome.com.tw/upload/images/20200903/20121828UOO3pyu6wC.png
可以在rules內加入想更改的規則

rules: {
    semi: 'off' // 句尾不加分號
}

像我的情況是,prittier常跟eslint打架,有時候就需要改一下設定(當然去改prittier那邊也沒問題)

設定完後可以執行

yarn ios
yarn android

來跑看看App(這裡先跑ios做為代表)
https://ithelp.ithome.com.tw/upload/images/20200903/20121828z3KroUFF1D.png

明天預計來加入底部的導覽列

參考:TypeScript官網
      React Native TypeScript模板


上一篇
[Day2] React Native入門可以不用Expo嗎?
下一篇
[Day4] 加入導覽列-Android:你再冷落我試試看啊?
系列文
我不用Expo啦,React Native!33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
joey1248
iT邦新手 4 級 ‧ 2023-05-24 13:55:32

請問為什麼我載完之後沒辦法跑 yarn ios(作業系統是windows)

kib82330 iT邦新手 5 級 ‧ 2023-05-30 10:52:49 檢舉

react-native-cli windows 版不支援 ios ~ 會跟這個有關係嗎?
https://reactnative.dev/docs/environment-setup?guide=native&platform=ios&os=windows

0
joey1248
iT邦新手 4 級 ‧ 2023-05-24 13:55:33

請問為什麼我載完之後沒辦法跑 yarn ios(作業系統是windows)

我要留言

立即登入留言