前端常用第三方库

2023-11-14

常用功能的第三方插件集合

一、下载

1、原生

(1)a标签,只能同源下载

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div>
      <!-- a 标签下载 -->
      <a href="/04-a标签下载功能/test.png" download="demo">下载</a>

      <!-- 其他标签实现下载   同域    -->
      <div onclick="download()">下载</div>

      <!-- 其他标签实现下载   跨域    -->
      <div onclick="download1()">下载</div>
    </div>
    <script>
      // 同域
      function download(
        url = '/04-a标签下载功能/test.png',
        title = 'demo2',
        artist = 'down'
      ) {
        const eleLink = document.createElement('a') // 新建A标签
        eleLink.href = url || '/04-a标签下载功能/test.png' // 下载的路径
        eleLink.download = `${title} - ${artist}` // 设置下载的属性,可以为空
        eleLink.style.display = 'none'
        document.body.appendChild(eleLink)
        eleLink.click() // 触发点击事件
        document.body.removeChild(eleLink)
      }
      // 跨域
      function download1(
        url = 'https://upload-images.jianshu.io/upload_images/5809200-a99419bb94924e6d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
        title = 'demo3',
        artist = 'down'
      ) {
        var x = new XMLHttpRequest()
        x.open('GET', url, true)
        x.responseType = 'blob'
        x.onload = function () {
          const url = window.URL.createObjectURL(x.response)
          const eleLink = document.createElement('a')
          eleLink.href = url
          eleLink.download = `${title} - ${artist}`
          eleLink.style.display = 'none'
          document.body.appendChild(eleLink)
          eleLink.click()
          document.body.removeChild(eleLink)
        }
        x.send()
      }
    </script>
  </body>
</html>

(2)iframe下载,支持跨域get请求

export function iframeDownload(url, defaultMime = 'application/octet-stream') {
  //创建iframe标签
  const f = document.createElement('iframe');
  //下载url
  f.src = url;
  // 设置不可见
  f.style.display = 'none';
  // 挂到body中
  document.body.appendChild(f);
  // 延时 注销iframe标签
  setTimeout(function () {
    document.body.removeChild(f);
  }, 333);
}

(3)Form表单下载,支持跨域get和post请求

export function downloadFileByForm(
  url: string,
  filename: string,
  method = 'get'
) {
  const form = document.createElement('form');
  form.setAttribute('action', `${url}&bucketName=${config.bucketName}`);
  form.setAttribute('method', `${method}`);

  const input = document.createElement('input');
  input.setAttribute('type', 'hidden');
  input.setAttribute('name', 'filename');
  input.setAttribute('value', `${filename}`);

  form.appendChild(input);
  document.body.appendChild(form);
  form.submit();

  setTimeout(() => {
    document.body.removeChild(form);
  }, 100);
}

2、第三方插件

(1) FileSaver.js

(2) StreamSaver.js

二、图片查看器

1、viewerjs

2、v-viewer

三、富文本编辑器

1、 wangeditor

四、基于vue的table配置组件

1、 vxe-table

五、基于vue的form表单设计器

1、 form-generator(简单)

  • 说明:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。
  • 地址:https://github.com/JakHuang/form-generator
  • UI支持:Element UI
  • Vue支持:Vue2

2、 form-create(全面)

  • 说明:form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持3个UI框架,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。
  • 地址:https://github.com/xaboy/form-create
  • UI支持:iview、view-design、element-ui、ant-design-vue
  • Vue支持:Vue2、Vue3

3、 vue-form-making

六、基于vue的表单验证库

1、 vee-validate

七、Vue驱动的静态网站生成器

1、 vuepress

八、博客

1、 blog-vue-typescript

1、 blog-vue-springboot

九、基于模板生成word,html并导出等

1、docxtemplater

十、纯前端类似excel的在线表格

1、Luckysheet

2、X-Spreadsheet

十一、在线绘图工具

1、excalidraw

十二、可视化工具

1、D3

2、Echarts

3、区别

  • echarts基本上以现成的为主。
  • d3.js 更自由些,但美观度和工作量都要自己把握。也麻烦点。

十三、List列表拖拽组件

1、Sortable

十四、Vue2可拖动和可调整大小元素的组件

1、vue-draggable-resizable

十五、二维码

1、qrcodejs2

十六、文字滚动

1、vue-seamless-scroll

十七、将画布保存或转换为图像的工具

1、Canvas2image

十八、图片编辑工具

1、tui.image-editor

十九、基于 canvas 快速绘制结构化 UI 、动画和交互效果

1、spritejs

二十、使用HTML5画布从DOM节点生成图像

1、dom-to-image

二十、电子签名

1、signature_pad

二十一、水印

1、watermark-dom

https://github.com/saucxs/watermark-dom

2、watermarkjs

https://github.com/brianium/watermarkjs

二十二、进度条

1、progressbar.js

https://github.com/kimmobrunfeldt/progressbar.js

二十三、Vue 大屏数据展示组件库

1、DataV

http://datav.jiaminghi.com/

二十四、视频播放插件

1、vue-video-player

一些API使用说明:https://blog.csdn.net/a772116804/article/details/123680790

二十五、打印插件

1、Print.js

https://github.com/crabbly/Print.js

2、vue-print-nb

二十六、pdf嵌入

1、PDFObject

https://github.com/pipwerks/PDFObject

二十七、支持word(.docx)、excel(.xlsx)、pdf等各类型office文件预览的vue组件集合

1、vue-office

https://github.com/501351981/vue-office

二十八、docx转html

1、mammoth.js

https://github.com/mwilliamson/mammoth.js

二十九、tailwindcss

1、tailwindcss

https://www.tailwindcss.cn/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端常用第三方库 的相关文章

随机推荐

  • 什么是算法?

    算法 解决特定问题求解步骤的描述 在计算机中表现为指令的有限序列 并且每条指令表示一个或多个操作 算法特性 输入 输出 有穷性 确定性 可行性 算法设计的要求 正确性 1 算法程序没有语法错误 2 算法程序对于合法输入数据能够产生满足要求的
  • cmake设定项目版本信息

    一 version h in模板文件 pragma once define VER MAJOR 1 define VER MINOR 0 define VER BUILD 1 define VER REVISION PROJECT REVI
  • C#试题

    1 关于C 中的结构 一下说法中错误的是 选择一项 A 结构可以有构造函数 B 结构体内可以有字段 C 结构体内可以有方法 D 结构体内可以被继承 2 在C 编程中 访问修饰符控制程序对类中成员的访问 如果不写访问修饰符 类的默认访问类型是
  • excludePathPatterns方法不生效

    1 场景 我在项目中配置了License证书授权的功能 然后在配置拦截器的时候拦截了所有的请求都必须验证License是否到期 但是这样会导致接口响应慢 所以打算使用 excludePathPatterns 方法对部分url请求放行 例如我
  • element UI 表格table多个数值进行排序筛选

    效果图 1 表格html部分
  • Java序列化和反序列化(详解)

    一 理解Java序列化和反序列化 Serialization 序列化 将java对象以一连串的字节保存在磁盘文件中的过程 也可以说是保存java对象状态的过程 序列化可以将数据永久保存在磁盘上 通常保存在文件中 deserializatio
  • ffmpeg源码安装

    ffmpeg源码安装 http blog yundiantech com log blog id 35 1 安装yasm tar xvzf yasm 1 3 0 tar gz cd yasm 1 3 0 configure make mak
  • 北斗高精度卫星接收机的分类

    北斗卫星导航接收机是用来收集处理天线接收到的电磁信号 理想的接收机抑制所有不需要的噪声 并对需要的信号不增加任何噪声或干扰 不管信号的形式或格式如何 它都可以变换 以适合信号处理器检波电路所要求的特性 然后再送到智能用户接口 北斗卫星导航接
  • [war打包]在maven-antrun-plugin复制更改了配置文件但是maven-war-plugin打包出来配置文件没变化(草稿)

    前言 背景介绍 在某个java web项目中 需要根据maven的profile的配置进行properties文件的切换 例如 项目的配置文件结构如下 在resources文件夹下面分别有profiles文件夹及conf文件夹 重点关注 p
  • 【OpenCV入门教程Java版之一】安装OpenCV:OpenCV4.6.0+IDEA开发环境配置

    在读研期间的研究方向与图像处理有一点相关 后来由于工作可能会有需要 所以晚上回去也闭门研究了OpenCV和图像处理相关的知识 也准备写一个OpenCV系列的专栏作为自己的学习笔记 也分享给大家 如果有写错的地方也欢迎大家及时指出 好了这篇文
  • 搭建STM32F407的SPI-Flash(基于STM32CubeMX)

    网上有不少例子 都对 但对我来说碰到几个坑 避免以后再犯错 mark下 目标 通过SPI接口 对Nor Flash进行读写 开发板上Nor Flash 是W25Q128 128Mbit 也就是16MB样子 CubeMx端配置 配置要分两个
  • OpenStack--实现内外网结构

    类似于阿里云 ECS 主机的内外网 双网卡不通网段 的结构 最终实现内外网区分隔离 https www aliyun com product ecs utm medium text utm source baidu utm campaign
  • STM32低速时钟频率校准方法

    RT Thread的PM组件利用LPTIM来实现低功耗唤醒和系统tick补偿 而LPTIM的时钟源一般会选择LSI LSI这玩意儿功耗虽然只有几百nA 但是频偏非常大 例如STML051手册上就说LSI的频率在26kHz 56kHz之间 典
  • STL-stack容器和queue容器

    stack概念 stack是一种先进后出 First In Last Out FILO 的数据结构 它只有一个出口 栈中只有顶端的元素才可以被外界使用 因此栈不允许有遍历行为 与queue相似 stack也是一个适配器类 它给底层vecto
  • %d %ld %lld

    因特网 互联网 以太网 局域网的区别 相信下面几个表达方式 就能说明问题吧 d int ld long lld long long 在32位编译器上 int long 32bit long long 64bit
  • 心得:Javascript的内存释放实验

    我以前也看过关于javascript的内存释放的文章 但我从来也没仔细看过 原因 一来我觉得这个东西可有可无 二来 鬼知道这些理论到底有没有科学根据 今天我做了一个小小的实验 证实内存释放还是有用的 比如有如下程序 var a new Ar
  • 一个三节点的PVE 6.1+CEPH集群,因为系统损坏,全部重新安装。

    注意 逐一重装系统 重新加入PVE集群 重新加入CEPH集群 先禁用ceph的recover 避免其因OSD丢失重建 任一节点执行 for i in noout nobackfill norecover do ceph osd set i
  • windows上面运行jar文件

    1 ctrl r进入CMD模式 2 切换到jar所在的目录 我的XXX jar在D workspace下面 3 运行jar java jar XXX jar
  • Redis过期策略与淘汰策略

    redis为什么这么快 原因之一就是Redis操作都是基于内存的 既然是基于内存的 而内存的大小是有限的 当内存不足或占用过高时 Redis会采用内存淘汰机制进行数据淘汰 一 Redis的过期策略 Redis在设置缓存数据时指定了过期时间
  • 前端常用第三方库

    常用功能的第三方插件集合 一 下载 1 原生 1 a 标签 只能同源下载 2 iframe 下载 支持跨域get请求 3 Form 表单下载 支持跨域get和post请求 2 第三方插件 1 FileSaver js 2 StreamSav