index
- https://reactnative.dev/docs/platform-specific-code
UI
插件模拟器
- https://ide.swmansion.com/
Build
无框架
npx @react-native-community/cli init
npx react-native init是旧的,0.76后官方推荐用@react-native-community/cli来创建项目等,react-native则用来执行编译等
- 默认有一个
import { NewAppScreen } from '@react-native/new-app-screen';
<NewAppScreen templateFileName="App.tsx" />
- 显示React Native的一些版本、文档,templateFileName只是单纯的字符串,显示文本
- 开发模式(非常有意思)
yarn android进行启动dev服务器、编译app并安装
- 如果没有修改原生代码,则只需要启动dev服务器即可
yarn start
- 但是注意要转发端口
adb reverse tcp:8081 tcp:8081
Expo框架
npx create-expo-app@latest
/scripts/reset-project.js该脚本用于把默认代码迁移到app-example,写自己代码
构建方式
- expo go app:包含了expo预制环境,可以让app仅编译JS直接在设备运行
- 推荐简单开发时用这个即可
npm run start | npx expo start
- 开发版本介绍
- local development build:构建自己的APK,而不是上传到Expo Go app,因此可以写原生代码
- 如何还需要调式功能,需要自己安装expo-dev-client,
npx expo install expo-dev-client
- 当安装了这个,就必须只能自己编译应用,无法使用Expo Go,除非uninstall这个依赖
npx expo run:android
npx expo run:ios
- 第一次运行会生成android或者ios目录(原生代码)
- 第一次编译巨慢无比,第二次非常快(可能是不涉及原生代码修改就会非常快)
- 第一次编译时的第一次刷新页面也慢了一点,后面就和Expo Go开发一样了(可能和上面一样,不涉及原生代码编译)
- 重启电脑后再次编译,又变得和第一次编译差不多(但是应该说是1/4)
- 如果修改了一些会影响原生代码的配置,最好先删除原生代码,也可以用``npx expo prebuild --clean
- local production build:好像并没有做什么修改,只是做原生构建也需要的,没有排除expo-dev-client
Storage
Library
pnpm