跳到主要内容

前端:@blocklet/uploader

@blocklet/uploader 包提供了一个功能强大且高度可定制的 React 组件,用于在 Blocklet 生态系统中处理文件上传。它构建于 Uppy 之上,Uppy 是一个设计精良、模块化的开源文件上传器,可确保强大且用户友好的体验。

该包旨在作为独立组件在任何 React 应用程序中无缝工作。然而,当与 Media Kit blocklet 结合使用时,其全部潜力才能得以释放,后者提供了集中式文件管理、人工智能图像生成等高级功能以及预配置的设置。

架构概述

Uploader 组件充当 Uppy 实例的协调器。它将 Uppy 的核心逻辑与一套标准插件(如 Webcam 和 URL 导入)以及为 Blocklet 环境量身定制的自定义插件(如 AI Image 和 Resources)相结合。这种模块化架构带来了极大的灵活性和丰富的功能。

核心概念

该包提供了两种集成上传器的主要方式:

  1. 直接组件:

    <Uploader /> 组件可以直接在你的应用程序中渲染。它可以配置为内联显示或作为模态对话框显示。

  2. Provider 模式:

    对于更复杂的用例,<UploaderProvider /><UploaderTrigger /> 组件允许你通过编程方式从应用程序的任何部分(例如通过点击按钮)打开上传器。

基本用法

以下是一个将 Uploader 渲染为弹出模态框的最小示例。通过使用 ref 来访问其 openclose 方法。

Basic Uploader Example

javascript
import { useRef } from 'react';
import Uploader from '@blocklet/uploader';
import Button from '@mui/material/Button';

export default function MyComponent() {
  const uploaderRef = useRef(null);

  const handleOpen = () => {
    uploaderRef.current?.open();
  };

  return (
    <div>
      <Button onClick={handleOpen}>打开上传器</Button>
      <Uploader ref={uploaderRef} popup={true} />
    </div>
  );
}

这个简单的设置将渲染一个按钮,点击该按钮会打开功能齐全的 Uploader 模态框。

API 参考深入了解

要充分利用 @blocklet/uploader 的功能,请查阅其组件、钩子和实用工具的详细 API 文档。

通过理解这些构建模块,你可以定制上传器以完美满足应用程序的需求。要获得完整的文件上传解决方案,请记得根据 @blocklet/uploader-server 文档中的说明,设置相应的后端服务。