首页 > 其他分享 >#yyds干货盘点#Expo 搭建 React-native 项目

#yyds干货盘点#Expo 搭建 React-native 项目

时间:2023-11-04 10:35:46浏览次数:35  
标签:__ yyds app js React json Expo expo minimal

Expo 搭建 RN 项目

Expo 搭建项目有两种方式:一种是通过 Expo 的脚手架 expo-cli;一种是通过 create-react-native-app。本文采用第一种。

1、安装 expo-cli

npm install expo-cli --global

2、创建项目

expo init my-new-project

会有两类模板让你选择:托管工作流,裸露工作流(感觉叫原生工作流更好理解点。详情见Workflows

expo init simple-project
? Choose a template:
  ----- Managed workflow -----
❯ blank                 a minimal app as clean as an empty canvas
  blank (TypeScript)    same as blank but with TypeScript configuration
  tabs                  several example screens and tabs using react-navigation
  ----- Bare workflow -----
  minimal               bare and minimal, just the essentials to get you started
  minimal (TypeScript)  same as minimal but with TypeScript configuration

3、启动项目

cd my-new-project
expo start

4、预览项目

项目启动后,有两种方式预览:下载 Expo Client 手机客户端(手机应用商店搜索 expo ),扫描二维码;或者 在终端输入 a 或 i,启动 Android 或 iOS 模拟器。

目录结构

不同模板的目录结构和截图如下:

模板

目录结构

截图

blank

.

├── .expo/

├── .expo-shared/

├── .git/

├── .gitignore

├── App.js

├── app.json

├── assets/

├── babel.config.js

├── node_modules/

├── package.json

└── yarn.lock


tabs

.

├── .expo/

├── .expo-shared/

├── .git/

├── .gitignore

├── App.js

├── __tests__/

├── app.json

├── assets/

├── babel.config.js

├── components/

├── constants/

├── navigation/

├── node_modules/

├── package.json

├── screens/

└── yarn.lock


minimal

.

├── .babelrc

├── .buckconfig

├── .git/

├── .gitattributes

├── .gitignore

├── App.js

├── __tests__/

├── android/

├── app.json

├── babel.config.js

├── index.js

├── ios/

├── node_modules/

├── package.json

└── yarn.lock


小联系

这里,简单看下 minimal 模板的项目目录 和 react-native init xxx 项目目录有啥不一样。

模板 minimal

react-native init xxx

.

├── .babelrc

├── .buckconfig

├── .git/

├── .gitattributes

├── .gitignore

├── App.js

├── __tests__/

├── android/

├── app.json

├── babel.config.js

├── index.js

├── ios/

├── node_modules/

├── package.json

└── yarn.lock

.

├── .buckconfig

├── .eslintrc.js

├── .flowconfig

├── .gitattributes

├── .gitignore

├── .prettierrc.js

├── .watchmanconfig

├── App.js

├── __tests__/

├── android/

├── app.json

├── babel.config.js

├── index.js

├── ios/

├── metro.config.js

├── node_modules/

├── package.json

└── yarn.lock

感觉,主要区别在于 app.json 的配置不同,以及 构建方式的不同(一个 expo 一个 metro)

react-native

{
  "name": "nativeDemo",
  "displayName": "nativeDemo"
}

minimal 多了个 expo 字段,详情见 Configuration with app.json

{
  "name": "minimalProject",
  "displayName": "minimalProject",
  "expo": {
    "name": "minimalProject",
    "slug": "minimalProject",
    "privacy": "unlisted",
    "sdkVersion": "36.0.0",
    "version": "1.0.0",
    "entryPoint": "node\_modules/expo/AppEntry.js",
    "platforms": [
      "ios",
      "android",
      "web"
    ]
  }
}

这为 react-native init xxx 和 expo init xxx 相互转换提供了参考:

在 app.json 中添加 expo 字段,根目录要有 App.js

标签:__,yyds,app,js,React,json,Expo,expo,minimal
From: https://blog.51cto.com/u_11365839/8179121

相关文章

  • expo-av如何实现动态播放本地音频?
    要实现动态播放本地音频,可以结合使用expo-file-system和expo-av库。下面是一个实现的示例:首先,确保你的项目已经安装了expo-file-system和expo-av。如果没有安装,你可以使用以下命令进行安装:expoinstallexpo-file-systemexpo-av在你的代码中,导入所需的库:import*asFileSystemfr......
  • # yyds干货盘点 # 麻烦看下这个表格宏命令如何修复?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【......
  • Linux环境Prometheus接入(三、MySQL监控接入mysqld_exporter)
    环境CentOS7.9安装1、命令下载wgethttps://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gztar-zxfmysqld_exporter-0.15.0.linux-amd64.tar.gzmvmysqld_exporter-0.15.0.linux-amd64.tar.gz/home/mysq......
  • Linux环境Prometheus接入(四、系统监控接入node_exporter)
    环境CentOS7.9安装1、命令下载wgethttps://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar-zxfnode_exporter-1.6.1.linux-amd64.tar.gzmvnode_exporter-1.6.1.linux-amd64/home/node_exporter2、配置系......
  • "none" is not exported by the List::Util module
     001、make命令报错如下:"none"isnotexportedbytheList::Utilmodule 002、解决方法    。 ......
  • React学习笔记16-属性props
    1.属性的定义props是正常是外部传入的,组件内部也可以通过一些方式来初始化的设置,属性不能被组件自己更改,但是你可以通过父组件主动重新渲染的方式来传入新的props。这就是React中的单向数据流2.属性的特点属性是描述性质、特点的,组件自己不能随意更改,必须由父组件进行更改......
  • React学习笔记17-属性VS状态
    相似点:都是纯js对象,都会触发render更新,都具有确定性(状态/属性相同,结果相同)不同点:1.属性能从父组件获取,状态不能2.属性可以由父组件修改,状态不能3.属性能在内部设置默认值,状态也可以,设置方式不一样4.属性不在组件内部修改,状态要在组件内部修改5.属性能设置子组件初始值......
  • React 中复制静态文件到 build的文件夹中
    React中复制静态文件到build的文件夹中环境:umi 框架前提:在跟目录下放置了Dockerfile 文件,在build时需要自动复制到dist文件夹里面。 1. 安装 copy-webpack-plugin 插件 2. .umirc.ts 文件中使用copy命令import{defineConfig}from"umi";exportdefaultde......
  • React 中设置环境变量(开发环境、测试环境和生产环境)
    React中设置环境变量(开发环境、测试环境和生产环境)环境React,Umi框架 1. 安装插件:cross-envnpmicross-env-S  2. 修改 package.json 文件"scripts":{"dev":"cross-envREACT_APP_ENV=devumidev","dev:prod":"cross-envREACT......
  • mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore
    系列导航一、linux单机版mongo安装(带密码验证)二、mongo集群搭建三、java连接mongo数据库四、java对mongo数据库增删改查操作五、mongo备份篇mongoexport、mongoimport以及mongodump、mongorestore如下是总结mongo数据库在执行备份和恢复中一些常用的语句。备份方面比较:1......