前端常用第三方库

导读:本篇文章讲解 前端常用第三方库,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、下载

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

十一、在线绘图工具

1、excalidraw

十二、可视化工具

1、D3

2、Echarts

3、区别

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

十三、拖拽组件

1、Sortable

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84943.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!