🚀🚀🚀 神了!RedwoodJS 轻松碾压 NextJS,成了我的最爱❤️

前言

最近一直在寻找全能的全栈开发方案,今天终于种到了,迫不及待地想带大家真正动手体验一下 RedwoodJS ------ 一个现代化的全栈框架,从零开始,带你完整搭建一个全栈应用,真正感受它的开发流程和工程化设计魅力。

往期精彩推荐

正文

RedwoodJS 是为全栈开发者设计的一站式框架,它结合了 React、GraphQL、Prisma、TypeScript 等技术,旨在大幅降低开发难度。下面我们就用 RedwoodJS 搭建一个小应用,完整体验一下。

1. 安装 RedwoodJS

首先安装 RedwoodJS CLI

bash 复制代码
npm create redwood-app@latest my-redwood-project

进入项目目录并下载依赖:

bash 复制代码
cd my-redwood-project
yarn

如果版本较低,可能会报错,使用这个命令升级 yarn 版本:

bash 复制代码
yarn set version 4.9.1 

启动开发模式:

bash 复制代码
yarn rw dev

此时浏览器会打开两个端口:

  • 前端在 http://localhost:8910
  • 后端 GraphQL API 在 http://localhost:8911/graphql

浏览器输入:http://localhost:8911/graphql,进入 graphql:

整体主要的项目结构如下:

2. 配置数据库

RedwoodJS 默认使用 SQLite,配置文件在 api/db/schema.prisma 中。

比如添加一个简单的 Post 模型:

prisma 复制代码
model Post {
  id    Int     @id @default(autoincrement())
  title String
  body  String
}

同步数据库:

bash 复制代码
yarn rw prisma migrate dev --name create-posts

这样数据库表就建好了。

3. 自动生成后端 API

CLI 快速生成 SDLSchema Definition Language)和服务逻辑:

bash 复制代码
yarn rw generate sdl Post
yarn rw generate service Post

这会自动生成:

  • GraphQL 类型定义
  • 查询、创建、更新、删除的服务函数
  • 测试文件

RedwoodJS 帮我们把一切后端接口打通了!

上的命令都执行报错了,显示文件已存在,就删除了数据库文件,重新执行了第二条,成功了

4. 自动生成前端页面

接着,生成前端 CRUD 页面:

bash 复制代码
yarn rw generate scaffold post

它会自动生成:

  • 列表页(Posts
  • 创建页(NewPost
  • 查看页(Post
  • 编辑页(EditPost

并且在左边导航栏自动加好链接。

打开浏览器,你就可以直接增删改查 Post 了!

5. 了解 RedwoodJS 的 Cell

RedwoodJS 中,数据请求采用 Cell 机制,统一处理四种状态:

  • Loading
  • Empty
  • Failure
  • Success

比如自动生成的 PostsCell.tsx 文件,大概是这样的结构:

ts 复制代码
export const Loading = () => <div>Loading...</div>
export const Empty = () => <div>Post not found</div>
export const Failure = ({ error }: CellFailureProps<FindPostByIdVariables>) => (
  <div className="rw-cell-error">{error?.message}</div>
)
export const Success = ({
  post,
}: CellSuccessProps<FindPostById, FindPostByIdVariables>) => {
  return <Post post={post} />
}

这样开发者只需要专注于每种状态下应该渲染什么,而不用手动写一堆 if-else 逻辑。

6. 部署 RedwoodJS 应用

RedwoodJS 天然支持 Serverless 平台,比如 NetlifyVercel,只需执行:

bash 复制代码
yarn rw deploy netlify

根据提示一步步操作,即可将应用部署到云端。

当然,如果你想部署到传统服务器,也可以打包成 Node.js 服务运行。

只需要很少的命令,就能快速交付一个全功能的应用,极大提升了开发效率。

最后

RedwoodJS 不仅仅是框架集合,它真正做到了工程化一体化,让全栈开发不再痛苦。如果你想探索「数据库 → API → 前端 UI」一条龙开发流程,RedwoodJS 会是非常不错的选择。未来还会继续带来更多 RedwoodJS 进阶玩法,敬请期待!

今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!

往期精彩推荐

相关推荐
qq_177767378 分钟前
React Native鸿蒙跨平台实现应用介绍页,实现了应用信息卡片展示、特色功能网格布局、权限/联系信息陈列、评分展示、模态框详情交互等通用场景
javascript·react native·react.js·ecmascript·交互·harmonyos
wuhen_n20 分钟前
JavaScript内存管理与执行上下文
前端·javascript
Hi_kenyon41 分钟前
理解vue中的ref
前端·javascript·vue.js
jin1233222 小时前
基于React Native鸿蒙跨平台地址管理是许多电商、外卖、物流等应用的重要功能模块,实现了地址的添加、编辑、删除和设置默认等功能
javascript·react native·react.js·ecmascript·harmonyos
2501_920931702 小时前
React Native鸿蒙跨平台医疗健康类的血压记录,包括收缩压、舒张压、心率、日期、时间、备注和状态
javascript·react native·react.js·ecmascript·harmonyos
落霞的思绪2 小时前
配置React和React-dom为CDN引入
前端·react.js·前端框架
Hacker_Z&Q2 小时前
CSS 笔记2 (属性)
前端·css·笔记
Anastasiozzzz2 小时前
LeetCode Hot100 295. 数据流的中位数 MedianFinder
java·服务器·前端
橙露3 小时前
React Hooks 深度解析:从基础使用到自定义 Hooks 的封装技巧
javascript·react.js·ecmascript
Exquisite.3 小时前
Nginx
服务器·前端·nginx