表格类:

cdn库

cdn

vxe-table[开源的多功能表格]

简介

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等…
码云地址
官方API
官方带示例的API

sortable[功能强大的JavaScript 拖拽库]

简介:

Sortable.js是一款优秀的js拖拽库,支持ie9及以上版本ie浏览器和现代浏览器,也可以运行在移动触摸设备中。不依赖jQuery。支持 Meteor、AngularJS、React、Vue、Knockout框架和任何CSS库,如Bootstrap、Element UI。你可以用来拖拽div、table等元素。实现表格拖拽排序、拖拽排版等功能
文档连接:
官方文档
备份链接

// 基础使用npm install sortablejs --saveimport Sortable from 'sortablejs';// 初始化配置
sorTableInit() {const node = document.getElementById("item-wrap"); // 获取要管理的容器节点Sortable.create(node,{   //  创建拖拽对象delay: 0, // 鼠标点击多久都可拖拽animation: 150, // 拖拽动画时间direction: 'horizontal', // 拖拽方向onEnd:({oldIndex,newIndex})=>{  // 拖拽完成后的回调 【该回调中可收到一个CustomEvent 对象,该对象中有 oldIndex,newIndex属性可用来进行对原有数据进行排序处理】let targeItem = this.itemList.splice(oldIndex,1)[0] // 拿到移动的数据元素this.itemList.splice(newIndex,0,targeItem) // 将移动的元素数据插入到移动的位置}})},

pl-table[完美解决element-ui表格万级数据渲染卡顿问题]

简介

使用pl-table解决 vue+elment el-table 或el-tree (表格列表或树形控件)渲染万条以上的大数据,数据过多导致卡顿问题。
文档连接:
参考一
GitHub链接

// 基本使用npm i pl-tablemain.js文件直接引入:// 支持 element 表格的无限滚动加载,文档:https://github.com/livelyPeng/pl-table
import plTable from 'pl-table';
import 'pl-table/themes/index.css';
Vue.use(plTable);将组件中使用的 el-table 标签 换成 plTable 即可

handsontable-vue [前端在线表格(Excel类型)]

<template><div id="example" ref="example"></div>
</template><script>
import Handsontable from "handsontable";
import "handsontable/dist/handsontable.full.css";
export default {name: "Handsontable",data() {return {tableData: [["日期", "Tesla", "Volvo", "Toyota", "Ford"],["2019", 10, 11, 12, 13],["2020", 20, 11, 14, 13],["2021", 30, 15, 12, 13],],};},mounted() {this.init()},methods: {init() {if(!this.$refs?.example) returnnew Handsontable(this.$refs.example, {data: this.tableData,rowHeaders: true,colHeaders: true,contextMenu:[ // 鼠标右键菜单内容'添加一行',]});},},
};
</script><style>
/*去除未激活的提示文本*/
.hot-display-license-info{display: none;
}
#hot-display-license-info {display: none;
}
</style>

npm
GitHub参考初始化配置
官网
核心API
博客参考
右击配置

工具函数库类:

deepmerge[实现对象的深度合并的js方法库]

npm链接

lodash[功能强大的js函数库]

官方文档

clipboard2[前端能够调用剪切板的一个插件]

npm链接
GitHub链接
优秀的博主链接

xe-utils 【强大的js工具函数类库】

npm使用
API文档

cross-env 【获取全局环境变量】

参考博客

1、给不同的编译命令指定不同环境"scripts": {"dev": "cross-env NODE_ENV=development nuxt",}2、全局会有一个 process.env.NODE_ENV 变量const env = process.env.NODE_ENV3、可以根据变量的值切换不同环境的API请求地址 

json-bigint[解决json长数据精度问题]

npm i json-bigint

var JSONbig = require('json-bigint');var json = '{ "value" : 9223372036854775807, "v2": 123 }';
console.log('Input:', json);
console.log('');console.log('node.js built-in JSON:');
var r = JSON.parse(json);
console.log('JSON.parse(input).value : ', r.value.toString());
console.log('JSON.stringify(JSON.parse(input)):', JSON.stringify(r));console.log('\n\nbig number JSON:');
var r1 = JSONbig.parse(json);
console.log('JSONbig.parse(input).value : ', r1.value.toString());
console.log('JSONbig.stringify(JSONbig.parse(input)):', JSONbig.stringify(r1));为 JSON 格式的字符串转

前端验证类:

vue-puzzle-vcode【拖拽滑块验证】

示例一
示例二

日期函数库

moment.js

官网

页面代码展示

highlight.js

npm install highlight.js

import Vue from 'vue'
import Hljs from 'highlight.js'
import 'highlight.js/styles/monokai-sublime.css' // 主题文件
// 封装成插件
let Highlight = {}
Highlight.install = function (Vue, options) {Vue.directive('highlight', function (el) {let blocks = el.querySelectorAll('pre code');blocks.forEach((block) => {Hljs.highlightBlock(block)})})
}
Vue.use(Highlight)
test:{"code":0,"msg":"success","data":{"project_list":"zzzz"}}<pre v-highlight><code class="javascript">{{test}}</code></pre>pre中不能有换行,否则会默认开头有空格!!!!!

npm
官网
参考博客

Monaco Editor【完美复刻vs code】

npm install vue-monaco@0.32.1

<template><MonacoEditor class="editor" v-model="code" language="javascript" :options="options" />
</template><script>
import MonacoEditor from 'vue-monaco'export default {components: {MonacoEditor},data() {return {code: 'const noop = () => {}',options:{readOnly: true,automaticLayout: true,}}}
}
</script><style>
.editor {width: 600px;height: 800px;
}
</style>

npm
官网

vue-json-views[JSON展示工具]

  • 用 pre标签或JJSON.stringify()方法也可实现
    npm
    博客链接

新手引导【intro.js】

博客链接

拖拽

vuegraggable

博客链接

Vue Grid Layout【页面拖拽布局】

官网
参考仓库

vue-resize-directive【自定拖拽放大布局】

npm

screenfull [全屏插件]

npm

svg-sprite-loader【vue项目中 svg 使用】

npm
参考博客

config.module.rule('svg').exclude.add(resolve('src/components/svgIcon')) // svg图标路径.end()config.module.rule('svg-icon').test(/\.svg$/).include.add(resolve('src/components/svgIcon')).end().use('svg-sprite-loader').loader('svg-sprite-loader').tap(options => {return {symbolId: 'svg-icon-[name]'}}).end()

vue-lottie 【 vue 项目中使用loading动画】

将ui的lodading图转为json数据,生成动画。
npm
参考博客

vue-seamless-scroll 【大屏列表无线滚动】

参考博客
参考博客2

<template><div id="app"><div class="backround"><div class="toptitle"><div class="item">日期</div><div class="item">姓名</div><div class="item">地址</div></div><vue-seamless-scroll:data="listData":class-option="optionHover"class="seamless-warp"><el-table :data="listData" border :show-header="status"><el-table-column prop="date" label="日期"> </el-table-column><el-table-column prop="title" label="姓名"> </el-table-column><el-table-column prop="test" label="地址"> </el-table-column></el-table></vue-seamless-scroll><div class="toptitle"><div class="item">总计</div><div class="item">111</div><div class="item">222</div></div></div></div>
</template><script>
export default {data() {return {status: false,listData: [{title: "无缝滚动第一行无缝滚动第一行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},{title: "无缝滚动第2行无缝滚动第2行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},{title: "无缝滚动第3行无缝滚动第3行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},{title: "无缝滚动第4行无缝滚动第4行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},{title: "无缝滚动第5行无缝滚动第5行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},{title: "无缝滚动第6行无缝滚动第6行",date: "2017-12-16",test: "测试",test2: "测试2",test3: "测试3",},],};},computed: {optionHover() {return {step: 0.5, // 数值越大速度滚动越快limitMoveNum: 3, // 开始无缝滚动的数据量 this.dataList.lengthhoverStop: false, // 是否开启鼠标悬停stopdirection: 1, // 0向下 1向上 2向左 3向右openWatch: true, // 开启数据实时监控刷新domsingleHeight: 50, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3waitTime: 1000, // 单步运动停止的时间(默认值1000ms)};},},
};
</script>
<style lang="less">
// .backround {//   width: 100%;
//   height: 1000px;
// }// 滚动范围
.seamless-warp {height: 200px;overflow: hidden;
}
.el-table .cell {text-align: center;
}
.toptitle {width: 100%;display: flex;background-color: gainsboro;margin-bottom: 10px;border-bottom: 1px solid gainsboro;background-color: transparent;color: red;
}
.item {width: 33.3%;height: 48px;line-height: 48px;text-align: center;
}
</style>

前端项目中常用的工具包(拖拽排序表格、打印导出表格、文本复制等)【持续更新~~~】相关推荐

  1. 前端项目中常用的轮子,提升开发效率

    React UI组件库 1.Ant Design :文档齐全,社区生态良好,有手机版,还有PC版.可以用来快速创建手机/后台/内部应用的UI组件库.我的博客,就是那这个组件库制作的. 网址:https ...

  2. vue 项目 upload上传图片 并实现拖拽排序

    upload 上传图片并实现拖拽功能 1.npm i -S vuedraggable 2.//页面引入 import draggable from "vuedraggable" c ...

  3. js 可拖拽排序、插入的表格

    程序源码,为了一次性全粘贴把js全复制过来,很多和此无关 [b][color=red]以下为很久以前写的,时至今日可以用 jQuery 以更少的代码完成更多的功能.[/color][/b] 显示如图: ...

  4. vue项目中draggable实现拖拽排序

    本文简要介绍在Vue项目中利用draggable实现拖拽排序的功能,先简单展示下具体功能. 如上图所示,点击[排序]之前list中每个item不能进行排序,当选中[排序]后可以拖拽的方式进行排序.下面 ...

  5. html列表拖拽排序插件,JS拖拽排序插件Sortable.js用法实例分析

    本文实例讲述了JS拖拽排序插件Sortable.js用法.分享给大家供大家参考,具体如下: 最近由于项目功能设计的原因,需要对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好 ...

  6. vue项目中,兼容vue3.0 1.0 2.0 宫格拖拽排序,特殊五小一大六宫格拖拽

    前端时间写了标准宫格拖拽排序的文章       1.  2.4.9.12等等标准宫格拖拽,基于vue-grid-layout 拖拽换位无刷新 vue项目中 基于vue-grid-layout开发的拖拽 ...

  7. vue项目中 五小一大六宫格拖拽排序,6宫格拖拽换位,矩阵拖拽排序

    背景:项目中用到1.4.6.9.12.16宫格排序,拖拽换位等场景,项目是监控的视频矩阵,用户矩阵拖拽排序换位,之前已经实现1.4.9.12.16等矩阵式排列的拖拽排序,但是六宫格要求五小一大,之前的 ...

  8. 全网为数不多清晰可行的在VUE中使用sortable.js实现动态拖拽排序的教程!

    目录 0 写在前面的 1 依赖安装 2 手写简单标签演示 3 要点 4 效果 0 写在前面的 首先批评以下文章 (10条消息) sortable.js 实现拖拽_sortablejs_花铛的博客-CS ...

  9. C#项目中常用到的设计模式

    C#项目中常用到的设计模式 1. 引言 一个项目的通常都是从Demo开始,不断为项目添加新的功能以及重构,也许刚开始的时候代码显得非常凌乱,毫无设计可言.但是随着项目的迭代,往往需要将很多相同功能的代 ...

最新文章

  1. 如何在Form中使用键弹性域(Key Flexfield)
  2. 另类寻找百度文库下载地址
  3. mysql 重置id
  4. lk中内联调用的dsb()
  5. 以对象的形式动态获取宽高
  6. 如何用python自动改试卷_利用Python和Jinja2自动生成试卷
  7. mysql默认join是什么类型_MySQL:join语句类型
  8. 贵州2021高考状元成绩查询,2021年贵州高考状元名单公布,贵州高考状元学校资料及最高分...
  9. 重磅消息,Redis开源作者宣布不再维护Redis项目!
  10. 专访许鹏:谈C程序员修养及大型项目源码阅读与学习
  11. 百度地图实现鼠标绘制多边形并获取所有点坐标
  12. 05.python学习系列——画图库turtle(啥是小猪佩奇)
  13. 基于CORBA规范的中间件——CORBA基本原理
  14. mysql连接中文_MYSQL远程连接查询中文乱码
  15. 偷偷学Python,怎么高空建楼(Python自动化办公实现批量替换Word)
  16. RDKit | 建立溶解度预测的LightGBM回归模型
  17. Android手机扫描,电脑复制内容----手机实现无线扫码枪功能
  18. 直播技术——Rtmp协议
  19. adb devices后显示List of devices attached/unauthorized问题解决
  20. 高并发编程之生产者—消费者设计模式

热门文章

  1. 第八节 Electron主进程和渲染进程之间的通信
  2. 标量、向量、矩阵求导大全
  3. Handler 源码解析——Handler的创建
  4. Range fro mac(随机数字生成软件)
  5. 我的PHP爬虫实现一页式学习工具 : 我的超级文档查看利器 把文档所有页面当做一个页面输出 一直pagedown就可以快速学习 关键词完整全文搜索...
  6. PHP——四舍五入取整、向上取整、向下取整、小数截取
  7. RK3399平台开发系列讲解(IIO子系统)4.38、什么是IIO(Industrial I/O)
  8. mybatisPlus根据起止时间作为条件进行查询
  9. 两位数求和(xhh)
  10. Excel中的格式刷如何使用?