react-native expo 第三章 从demo进入expo
·
1 创建一个应用
1.1创建应用
npx create-expo-app -t
1.2选择 Defaults
? Choose a template: » - Use arrow-keys. Return to submit.
> Default - includes tools recommended for most app developers
Blank
Blank (TypeScript)
Navigation (TypeScript)
Blank (Bare)
1.3 输入名字 What is your app named? » my-app
1.4 cd 进入
2 看一下目录(改后的)具体删除看第一章的 删除文件夹再自己创建app等

3 文件夹
为什么有两个()的文件夹 因为把tab也和其他页面区分了 这是结构问题按自己喜好来
3.1 app _layout.tsx 共享元素
3.2 app (home) 群组 字面意思
3.3 store 使用zustand创建的状态管理
非常简单的使用 第一章有说过
npm install zustand
import { create } from 'zustand';
export const useStore = create((set: any) => ({
indexTabDefaultColor: '#999',
indexTabActiveName: 'index',
setIndexTabActiveName: (_n: string) => set(() => ({ indexTabActiveName: _n })),
}));
这里我在 (home)/_layout.tsx 下使用的方式
import { useStore } from '@/stores/index';
import { Text} from 'react-native';
export default function TabLayout() {
//这里解构出store里的变量和方法
const { indexTabDefaultColor, indexTabActiveName, setIndexTabActiveName } = useStore()
return <Text>{indexTabDefaultColor}</Text>
}
3.4 typing 类型文件
3.5 utils 方法 (router)
这里我写了一个 router跳转方式 这里也是第一章说的路由跳转方式过多 重新看的方法 全部使用router进行跳转
replace 替换当前路由
push 新增路由栈堆
import { router } from 'expo-router';
/**
* @param url 路径
* @param type 跳转方式
* @returns 新页面
* @example
* goRouter('/(other)/login', 'push')
*/
export const goRouter = (url: string, type: 'replace' | 'push' = 'push') => router[type](url as any)
3.6 app.json app相关配置
4 打包
- 账号有之后
文件夹终端执行 - 安装eas-cli
npm install -g eas-cli
- 会提示输入用户名和密码 类似于登录npm
eas login
- 初始化eas文件
eas build:configure
- 打包 这个环境不太好处理 目前只能用dev和prod想向其他项目一样很多环境需要安装插件 这里不安装了 这个打包 也不要打包dev环境 因为dev环境会安装内嵌式expo go
里面可以用 process.env.NODE_ENV分辨环境
// 因为电脑不是ios的 打包时候要appId 所以这里只打包了安卓的
// prod 直接打出了aab后缀的文件 需要工具转换 所以没有用这个 最后一个图会出现 download 按钮 下载aab
// prev 可以直接打包出apk 直接扫码安装就好 最后一张图会出现 install 按钮 手机扫码下载
eas build -p android --profile production
eas build -p android --profile preview
5 打包时间也长短不一接下来是图片 登录->打包状态 ->完成的样子





6 app



结束 拜拜 其他内容自己工作再看吧
更多推荐

所有评论(0)