让我们一起实现一个文件选择组件

开发 前端
childData​ 子文件数据(可选参数),值为array类型,如果type为"folder",则传此参数,数组中的每一项类型就为fileData的类型。

前言

花了点时间利用广度与深度优先搜索算法实现了一个文件选择插件,支持无限层次的文件夹嵌套,已开源并打包上传到了npm。

本文将跟大家分享一下这个插件,欢迎各位感兴趣的开发者阅读本文。

插件安装

yarn add file-folder-selector
# or
npm install file-folder-selector --save

插件使用

在你需要使用此插件的业务代码中导入插件。

<script setup lang="ts">
import { FileSelect } from "file-folder-selector";
// 组件的样式文件,可以在项目的业务代码内导入,也可以在项目的入口文件导入
import "file-folder-selector/dist/style.css";
</script>

在template中使用即可。

<template>
<file-select />
</template>

完成上述步骤后,启动项目即可看到如下所示的效果。

图片

效果图

参数说明

插件接收5个可选参数:

  • fileData 文件树结构数据

title 文件名, 值为string类型

id 文件id, 值为string类型

type 文件类型, 值为"file"或"folder"

imgSrc 文件图片地址(可选参数),值为string类型

childData 子文件数据(可选参数),值为array类型,如果type为"folder",则传此参数,数组中的每一项类型就为fileData的类型。

  • defaultFolderImage 默认的文件夹图标,值为string类型
  • defaultFileImage 默认的文件图标,值为string类型
  • defaultSearchImage 默认的搜索图标,值为string类型
  • defaultFolderPathImage 默认的文件夹路径图标,值为string类型

注意:插件默认的图标更换不支持svg格式的图片,插件的fileData参数可参考源码中的FileConfig.json文件。

插件提供了1个回调函数:

  • getSelectedFile 获取已选择的文件,它有1个参数selectedArray,它值为array​类型,数组中的每一项类型为:{title: string; id: string; type: string }

具体的使用方法可以参考源码中的 file-select-test.vue 文件。

责任编辑:武晓燕 来源: 神奇的程序员
相关推荐

2023-08-02 08:35:54

文件操作数据源

2021-11-15 11:03:09

接口压测工具

2022-03-31 18:59:43

数据库InnoDBMySQL

2021-08-27 07:06:10

IOJava抽象

2021-12-29 08:27:05

ByteBuffer磁盘服务器

2022-03-08 17:52:58

TCP格式IP

2023-08-14 08:38:26

反射reflect结构体

2021-11-26 07:00:05

反转整数数字

2021-07-15 07:23:28

Singlefligh设计

2022-02-14 07:03:31

网站安全MFA

2022-02-14 10:16:22

Axios接口HTTP

2022-06-26 09:40:55

Django框架服务

2016-09-06 10:39:30

Dell Techno

2022-06-27 08:00:49

hook工具库函数

2022-07-10 23:15:46

Go语言内存

2022-08-01 07:57:03

数组操作内存

2021-07-31 11:40:55

Openresty开源

2012-04-14 20:47:45

Android

2021-12-16 12:01:21

区块链Libra货币

2021-05-17 10:50:15

系统调用内核
点赞
收藏

51CTO技术栈公众号