当前位置:首页 > 技术分析 > 正文内容

Refine.js 火了!为何成为前端 CRUD 框架天花板?

ruisui883个月前 (02-03)技术分析14

家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

什么是 Refine

A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.

Refine 是一个 React 元框架,适用于 CRUD 密集型 Web 应用程序。其解决了包括内部工具、管理面板、仪表板和 B2B 应用程序在内的各种企业用例。

Refine 的核心 Hooks 和组件通过为项目的关键方面提供行业标准解决方案来简化开发流程,包括:身份验证、访问控制、路由、网络、状态管理和 i18n。

Refine 的无头架构通过将业务逻辑与 UI 和路由分离,支持构建高度可定制的应用程序,同时允许与以下方案集成:

  • 支持任何自定义设计或 UI 框架,例如: TailwindCSS,以及对 Ant Design、Material UI、Mantine 和 Chakra UI 的内置支持。
  • 支持通过简单的路由接口,无需额外的设置步骤即可与各种平台集成,例如: Next.js、Remix、React Native、Electron 等。

在广泛的开发方法中,Refine 在 “从头开始” 的传统开发方法和低代码、无代码解决方案之间寻找了独特的平衡点,从而提高开发效率和体验。

目前 Refine 在 Github 通过 MIT 协议开源,有超过 25.8k 的 star、2k 的 fork、3.2k 的项目依赖量、代码贡献者 230+、妥妥的前端优质开源项目。

如何使用 Refine

Refine 适用于任何可以运行 React 的环境,包括 Vite、Next.js、Remix 和 CRA(旧版)等等。虽然开发者可以花时间手动设置环境并随后安装 Refine 包,但开始使用 Refine 的最佳方式是使用基于浏览器的 Scaffolder 和基于 CLI 的 Scaffolder。

开发者可以使用 create-refine-app 快速启动一个新的 Refine 项目,其中包含许多选项来满足需求。

npm create refine-app@latest
// 也可以通过其他包管理器安装

当然,开发者也可以使用 Refine 基于浏览器的脚手架,其与基于 CLI 的脚手架具有相同的选项集。

Refine 使用起来也非常方便,比如:想要从接口获取 ID 为 123 的记录,则可以使用 useOne Hooks。在底层,其从数据提供者调用 dataProvider.getOne 方法。

import React from "react";
import {useOne, BaseKey} from "@refinedev/core";
// 导入 Hooks 和方法
export const Product: React.FC = () => {
    const {data, error, isError, isLoading} = useOne({
        resource: "products",
        id: 123,
    });
    // 使用 useOne 请求数据
    if (isError) 
{error?.message}
; if (isLoading)
Loading...
; const product = data?.data; return (

{product?.name}

Material: {product?.material}

Price {product?.price}

); };

在与 UI 库集成方面也非常优秀,Refine 为 React 生态系统中广泛使用的四个库提供了开箱即用的支持。每个库都有自己的组件和 Hooks 组合,旨在轻松无缝地使用。

这些集成旨在为菜单、布局、操作按钮、表格、表单等常见用例提供解决方案,同时提供与 UI 库一致的设计语言。这些集成不是约束,而是设计为 Refine 和 UI 库核心功能的辅助程序和扩展。

  • Ant Design 与 @refinedev/antd
  • Material UI 与 @refinedev/mui
  • Chakra UI 与 @refinedev/chakra-ui
  • Mantine 与 @refinedev/mantine

在权限验证方面,Refine 通过 Auth Provider 处理,并通过 auth hooks 使用 auth provider 方法。Auth provider 是一个包含处理应用中身份验证的方法的对象,旨在返回用于异步方法的 Promise。通过提供结构化架构,简化通过应用进行的身份验证实施和管理。

要在应用中激活身份验证,需要将 authProvider 作为 prop 传递给 。提供 auth provider 后,可以利用我们的 auth hooks(useLogin、useRegister、useIsAuthenticated 等)轻松管理身份验证。

import { Refine, AuthProvider } from "@refinedev/core";
export const authProvider: AuthProvider = {
  login: async ({ email, password }) => {
    const { status } = handleLogin(email, password);
    // 关键代码
    if (status === 200) {
      return { success: true, redirectTo: "/dashboard" };
    } else {
      return {
        success: false,
        error: { name: "Login Error", message: "Invalid credentials" },
      };
    }
  }
};
const App = () => {
  return ...;
};

关于 Refine 的更多用法和示例可以参考文末资料,本文不再过多展开。

参考资料

https://github.com/refinedev/refine

https://medium.com/@necati.ozmen.9/what-is-refine-js-1a086a1468f4

https://refine.dev/docs/guides-concepts/authentication/#auth-provider

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/878.html

标签: vite.js
分享给朋友:

“Refine.js 火了!为何成为前端 CRUD 框架天花板?” 的相关文章

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;性能测试经验与思考1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划· 性...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

Vue进阶(幺叁捌):vue路由传参的几种基本方式

1、动态路由(页面刷新数据不丢失)methods:{ insurance(id) { //直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/particulars/${id}`,...

vue-router是如何解析query参数呢? #前端

vue-router 中的 query 解析。1. 大家好,我是龙仔。今天来分享 vue-router 是如何解析快乐参数的,因为使用 vue 路由会传 query 参数和快乐参数,所以从 vue 的角度来看如何解析传递的快乐参数。2. 基础知识大家应知道,快乐参数结构如:a、b、c、a、b、c、a...

Vue中路由router的基本使用

??本文开始我们来给大家介绍在Vue中非常重要的一个内容,就是路由Router什么是路由后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特...

VUE3+JAVA商城源码小程序APP商城

三勾小程序商城基于springboot+element-ui+uniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。软件架构后端: springboot2.3.12管...