React 之 如何启动一个新的项目(六)

React本身是为构建SPA(单页面应用)而设计的。
想完全用 React 构建一个新的应用或网站,我们建议选择社区中流行的、由 React 驱动的框架。

生产级的 React 框架

1. Next.js

Next.js 的页面路由 是一个全栈的 React 框架。它用途广泛,可让你创建任何规模的 React 应用程序——从大部分的静态博客到复杂的动态应用程序。
你可以 将 Next.js 应用 部署到 Node.js 或 serverless 上,也可以部署到你自己的服务器上。完全静态的 Next.js 应用 可以部署在任何支持静态服务的地方。

//要创建新的 Next.js 项目,请在终端中运行:
npx create-next-app@latest

2. Remix

Remix 是一个具有嵌套路由的全栈式 React 框架。它可以把你的应用分成嵌套部分,该嵌套部分可以并行加载数据并响应用户操作进行刷新。
当你创建一个 Remix 项目时,你需要 选择你的部署目标。你可以通过使用或编写 适配器 将 Remix 应用部署到 Node.js 或 serverless 上进行托管。

//要创建一个新的 Remix 项目,请运行:
npx create-remix

3. Gatsby

Gatsby 是一个快速的支持 CMS 网站的 React 框架。其丰富的插件生态系统和 GraphQL 数据层简化了将内容、API 和服务整合到一个网站的过程。
你可以 部署一个完全静态的 Gatsby 网站 到任何一个支持静态服务的地方。如果你选择使用服务器上的功能,请确保你的主机供应商支持 Gatsby 的功能。

//要创建一个新的 Gatsby 项目,请运行:
npx create-gatsby

4.Expo(用于原生应用)

Expo 是一个 React 框架,可以让你创建具有真正原生 UI 的应用,包括 Android、iOS,以及 Web 应用。它为 React Native 提供了 SDK,使原生部分更容易使用。
当你创建一个 Remix 项目时,你需要 选择你的部署目标。你可以通过使用或编写 适配器 将 Remix 应用部署到 Node.js 或 serverless 上进行托管。
用 Expo 构建应用是免费的,而且你可以不受限制地将它们提交到谷歌和苹果的应用商店。此外,Expo 还提供选择性的付费云服务。

//要创建一个新的 Expo 项目,请运行:
npx create-expo-app

5.Next.js (App Router)

Next.js 的 App Router 是对 Next.js API 的重新设计,旨在实现 React 团队的全栈架构愿景。它让你在异步组件中获取数据,这些组件甚至能在服务端构建过程中运行。
你可以将 Next.js 应用 部署到 Node.js 或 serverless 主机上,或部署到你自己的服务器上。Next.js 还支持 静态导出,不需要服务器。

在现有 React 项目中添加 TypeScript

TypeScript 是一种向 JavaScript 代码添加类型定义的常用方法。

//使用下面命令安装最新版本的 React 类型定义:
npm install @types/react @types/react-dom

然后在 tsconfig.json 中设置以下编译器选项:

{
  "compilerOptions": {
    "target": "es5", //表示将TypeScript代码编译为ES5语法的JavaScript代码
    "lib": [  //lib字段指定了编译过程中需要包含的库文件。
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,  //允许在项目中包含JavaScript文件。
    "skipLibCheck": true,  //表示跳过所有声明文件的类型检查,这可以提高编译速度。
    "esModuleInterop": true,  //允许使用import foo from 'bar'语法来导入默认导出。
    "allowSyntheticDefaultImports": true,  //允许在导入时使用默认导入语法,即使模块没有默认导出。
    "strict": true,  //启用所有严格的类型检查选项。
    "forceConsistentCasingInFileNames": true,  //确保引用的文件大小写与实际文件大小写一致。
    "module": "esnext",  //使用最新的ECMAScript模块语法。
    "moduleResolution": "node",  //使用Node.js风格的模块解析。
    "resolveJsonModule": true,  //允许从.json文件中导入数据。
    "isolatedModules": true,  //表示每个文件应该单独编译,这有助于在编辑时提供更好的错误提示。
    "noEmit": true, //表示不输出文件,通常用于与编辑器集成以提供更好的错误和类型提示。
    "jsx": "react-jsx"  //这是React 17及以上版本推荐的JSX转换方式。
  },
  "include": [  //指定了需要编译的源文件所在的目录。在这个例子中,src目录包含了所有的源文件。
    "src"
  ]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/586923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UnityWebGL获取话筒实时数据

看了木子李大佬的数字人https://digital.lkz.fit/之后,我也想搞一个,于是开始研究起来,先从WebGL录音开始,一共试了三个插件,个个都有问题…… 1、UnityWebGLMicrophone 用起来没啥问题,但是只能录音&#…

大型企业总分支多区域数据传输,效率为先还是安全为先?

大型企业为了业务拓展需要,会在全国乃至全球各地设立分公司和办事机构,以便更好地处理当地事务,并进行市场的开拓和客户维护,此时,企业内部就衍生出了新的业务需求,即多区域数据传输。 多区域很难准确定义&…

【大语言模型LLM】-基于ChatGPT搭建客服助手(1)

🔥博客主页:西瓜WiFi 🎥系列专栏:《大语言模型》 很多非常有趣的模型,值得收藏,满足大家的收集癖! 如果觉得有用,请三连👍⭐❤️,谢谢! 长期不…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过路径优化解决钢板切割问题。结合贪心算法,Floyd-Warshall等多元算法…

STM32G030F6P6TR 芯片TSSOP20 MCU单片机微控制器芯片

STM32G030F6P6TR 在物联网(IoT)设备中的典型应用案例包括但不限于以下几个方面: 1. 环境监测系统: 使用传感器来监测温度、湿度、气压等环境因素,并通过无线通信模块将数据发送到中央服务器或云端平台进行分析和监控。…

Ansys Speos|进行智能手机镜头杂散光分析

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光,是在光学设计中无意产生的,会降低相机系统的光学性能。 在本例中,光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计,并使用…

字符串函数、内存函数——补充

目录 前言 1、strchr函数 1-1 函数介绍 1-1-1 函数功能 1-1-2 函数原型 1-1-3 函数参数 1-1-4 所属库 1-1-5 函数返回值 1-2 函数简单使用 1-3 函数使用场景 1-4 函数的使用总结 1-4-1 注意事项 2、strrchr函数 2-1 函数介绍 2-1-1 函数功能 2-1-2 函数原型 2…

ubuntu入门

基础命令 cd 切换命令 ls 查看当前目录下所有的文件 cp a.c b.c 拷贝a.c 到 b.c touch a.c 创建a.c文件 mkdir file 创建文件夹file rm file 删除文件 rmdir 删除test文件夹 rmdir test/ mv 移动文件 mv a.c b.c 把a.c 替换成b.c ifconfig 查看电脑网络信息 rm xx 删…

人工电销机器人在销售行业中的重要性和作用,以及未来市场的发展前景

在追求更高效、更智能的时代,各行各业都在积极寻求新技术、新应用来提升业务流程的效率和质量。对于销售行业而言,人工电销机器人已经成为越来越受欢迎的工具之一。我们将深入探讨人工电销机器人在销售行业中的重要性和作用,以及未来市场的发…

31.Gateway网关-跨域问题

跨域 1.域名不同:www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同,端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压,可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器: yum 是基于 Red Hat 的 Linux 发行版(如 CentOS、…

【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例

peerconn的信令是通过post 消息到自己的信令线程消息来处理的PeerConnectionMessageHandler 是具体的处理器G:\CDN\rtcCli\m98\src\pc\peer_connection_message_handler.hMachinery for handling messages posted to oneself PeerConnectionMessageHandler 明确服务于 signalin…

分布式与一致性协议之Raft算法(四)

Raft算法 Raft是如何解决成员变更问题的 在日常工作中,你可能会遇到服务器故障的情况,这时你需要替换集群中的服务器。如果遇到需要改变数据副本数的情况,则需要增加或移除集群中的服务器。总的来说,在日常工作中,集…

进一步了解android studio 里 AGP,gradle等关系

目录 (1) gradle是什么 (2) 工程的jdk版本,及引用包的编译版本的关系 实践 问题与解决 编译成功与运行成功 编译成功 运行成功 (1) gradle是什么 Gradle是一个构建工具,它是…

Mac 版 安装NVM

优质博文IT-BLOG-CN NVM(Node Version Manager)是一个用于管理多个Node.js版本的工具。它允许开发者在同一台机器上安装和切换不同版本的Node.js,以便在不同的项目中使用不同的Node.js版本。macOS用户可以使用homebrew来安装NVM。 一、安装h…

Swagger3.0(Springdoc)日常使用记录

文章目录 前言一、默认地址二、注解OperationTag 三、SpringBoot基础配置四、Swagger导入apifox五、Swagger其他配置六 knife4j 参考文章 前言 本文并不是Swagger的使用教程,只是记录一下本人的操作,感兴趣的可以看下 一、默认地址 http://localhost:…

Scala 多版本下载指南

Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…

Redis集群模式:高可用性与性能的完美结合!

【更多精彩内容,欢迎关注小米的微信公众号“软件求生”】 大家好,我是小米,一个积极活泼、喜好分享技术的29岁程序员。今天我们来聊聊Redis的集群模式,以及它是如何实现高可用的。 什么是Redis集群模式? Redis的集群模式是为了避免单一节点负载过高导致不稳定的一种解决…

Rust Web开发实战:构建高效稳定的服务端应用

如果你厌倦了缓慢、占用大量资源且不稳定的模板化Web开发工具,Rust就是你的解决方案。Rust服务提供了稳定的安全保证、非凡的开发经验,以及能够自动防止常见错误的编译器。 《Rust Web开发》教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web…

3.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式:malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) (了解) 4. 常…
最新文章