中提供的功能,因此在各个 UI 库、开源框架内大家都纷纷重新设计了表格。甚至在这些表格库内,你都不一定能看到 table
这个标签的影子。
那么,如何挑选一个好用的 React Table 库?
首先最重要的是明确你的用户需要哪些功能,比如说,用户如果需要单次加载超过一万行数据,那么几乎一定需要用虚拟化(virtualization)过的表格,或者至少是能够加上虚拟化的表格。再比如,如果你的用户需要按列排序、交换列顺序等,那么对应的表格组件也必须支持这些功能。
常见的表格功能包括
行选择
点击触发操作(比如加载数据)
导出数据
按列过滤
搜索
绑定和展示数据(比如 http 查询的结果数据)
调整样式,如列颜色等
重命名列
调整列顺序
分页、导航
等等
不幸的是,找到一个支持所有功能的组件库其实是非常不容易的。我们建议如果你不确定,可以在本文介绍的这些库中,快速找几个尝试挑一个覆盖最全的。
当然,如果你在开发一个内部系统 ,但这个内部系统本身只是为了铺助公司的业务而不是公司的业务本身,那么也大可直接尝试一下使用卡拉云 ,内置功能极为丰富的表格,与其它丰富的组件一起,可以让你极快搭建起一个好用的后台系统。上述提到的常见功能,卡拉云内置的表格全部原生支持。
在下文中,我们将分别介绍几款还不错的 React 表格框架。
AntD Table
AntD 是蚂蚁金服开源的一套前端框架,其中包含了一个表格组件。这个表格组件本身是在 rc-table 的基础上开发的,而 rc-table
的维持者也多数是 AntD 的几位维护者,比如 afc163
和 yiminghe
等。
AntD 本身的代码质量很高,使用它的好处非常明显,包括
丰富的功能
AntD 表格的功能非常丰富,包括按列升降排序、行过滤,紧凑显示、固定表头等等。在 AntD 的文档 中,单是可配置项就有几十个,可想而知其功能丰富程度。
较为清晰的文档
AntD 表格的文档也很清晰,除了一些细节的选项外,其它多数选项都有明确的说明,帮助快速开发。
强大的(中文)社区
AntD 已经是 GitHub 上星最多的项目之一了,同时不光星多,它的使用也非常广泛。这样的社区会加速组件本身的发展,因为如果有问题的时候,你总是可以得到社区的一些支持和帮助。
当然,使用 AntD Table 的缺点也很明显。由于它的复杂性,现在想要在上面添加功能需要非常扎实的前端功底。
同时,AntD 本身是用 LESS 来调整样式,因此如果你想用 CSS/SCSS 来调整表格的样式,将会比较痛苦 。但是需要指出的是,这并不是 AntD 本身的问题,使用前端框架来适应特定的需求本身就会遇到类似的情况。
另一个问题是,如果你的项目其它组件并没有在使用 AntD 的话,增加 AntD Table 将会导入整个 UI 库,显著地把 bundle 尺寸变大一个量级。当然,有一些方法可以绕过去,但毕竟需要花时间和精力来调整。如果你的项目中其它组件不需要使用 Ant 中的组件,那么可以考虑直接使用 rc-table,这也是 AntD 的基础组件。
综上,AntD 的表格组件是个较为不错的选择,如果需要单独使用 table,也可以直接使用 rc-table
React Table
React Table 是一个比较特别的存在。它可以说是所有表格组件中的 F-22 战斗机,包含天量功能,可以几乎定制无限复杂的表格需求。GitHub、亚马逊、微软、Uber 的大量前端项目都在大量使用 React Table。
它的作者也是个传奇人物,不光创作了 React Table,还有 React Query, React Charts 等等脍炙人口的超级开源项目。
React Table 与其它所有的组件库的设计理念都不同,它本身并不包含任何样式 ,相反它由一大堆 React Hook 组成。这些 Hook 提供了表格中常见需要的一些功能,比如行列合并、列宽调整、选择行选择列等等。
由于它的设计思路是只负责逻辑,所以你必须有较强的前端能力(主要是 CSS)和对 Hook 较深的掌握,才能比较熟练地用起来。但是话虽如此,也正因为 React Table 本身只专注逻辑,它才可以把如此多表格操作的逻辑实现得如此淋漓尽致,比起其它组件库它的功能丰富得一骑绝尘。因此,对于较大型或者较复杂的项目,React Table 对开发者的吸引力极大。
目前 React Table 的正式版本是第 7 版,第 8 版正在 alpha 测试中。
如果你的项目的需求复杂,同时你对 hook 的理解和掌握较好,那我们建议摒弃其它库,直接使用 React Table。当然,卡拉云的表格库是基于 React Table 开发的,因此懒得自己写样式的话,你也可以直接用卡拉云。
卡拉云的表格组件
在卡拉云中,我们内置了表格组件。从组件列表中拖动一个表格,就可以创建好一个表格,同时开始进行详细的表格设置。比如在下图中,我们将某一列本来数据是图片 URL 的列,直接展示出图片。
同时在左侧的设置栏中,也可以直接实现隐藏列、交换列顺序、调整列背景色以及调整表格式样等等。上文提到的表格功能中,以下全部可以直接通过简单配置实现
行选择
点击触发操作(比如加载数据)
导出数据
按列过滤
搜索
绑定和展示数据(比如 http 查询的结果数据)
调整样式,如列颜色等
重命名列
调整列顺序
分页、导航
甚至一些需要后端配合的高级功能,比如服务端翻页等等。关于卡拉云表格的文档请参考卡拉云表格 ,如果对卡拉云感兴趣也欢迎点这里免费试用 。
RC-Table
RC-Table 是一个表格组件,值得注意的是它是上文介绍过的 AntD Table 组件的基础。因此,它的功能是 AntD 表格的一个子集,但是它也非常完整地实现了表格中常见的一些操作。
注意如果你需要一些复杂的操作,比如行过滤等,则需要自己添加逻辑。RC Table 更像一把瑞士军刀,并没有全包全揽的功能,但是作为表格组件处理好了行、列、Header 之间的关系。
RC Table 非常适用于你只需要用一个表格组件,但并不需要整个 Ant 组件全家桶的情况。
Material UI Table
Material UI 的大名就不多说了,在国内最流行的框架是 Ant,但在国外最流行的当属 Material UI。
Material UI 中的表格功能丰富度适中,可以满足一些常见的需要,比如
但对于类似列宽设置、自定义、重命名列之类功能,则需要自己二次开发。
总体来说 Material UI 中的 Table 算是一个中规中矩的存在,如果你不是特别喜欢扁平化或本身在使用 MUI 的话,我们还是建议直接使用卡拉云或者 AntD 中的表格。
Ali-react-table
Ali-react-table 是专为高性能场景下设计的表格组件,它的设计初衷就是内嵌虚拟化,这样可以最大限度保证在加载了大量数据时,表格的性能仍然足够好。
如果你的使用场景是单次会加载大量数据(超过1万行)且不做翻页,同时还要保证用户的使用时不卡顿,那么可以考虑 ali-react-table
。但除此之外,这个库的功能没有非常丰富,所以这样的“核弹级”性能对于多数开发者来说,可能并不是个硬需求。
另外需要考虑的一点是,这个项目距上次更新已经过去了一年多,因此如果需要考虑维护社区活跃度的话,可能需要考虑上文其它几个库。
React Virtualized
严格来讲,React Virtualized 并不能算是一个表格库,相反,它是用来解决数据量大时虚拟化显示表格中数据用的专门的库。
当然在需要虚拟化的上下文中,最常见的无非就是大列表和大表格了,因此 React Virtualized 也包了一层表格的组件。与 Ali-react-table 类似,如果你的主要考虑不是性能,那么我会建议你跳过 react-virtualized,直接使用本文前三个组件中的一个即可。
总结
本文介绍了 React Table, AntD Table,卡拉云表格,Material UI 表格,Ali-react-table 和 React Virtualized 等几个 UI 库中的表格组件,分别介绍了它们的优缺点,希望对你挑选表格组件有帮助。如果你觉得有用,请转发分享本文,或在你的博客中链回本文。
如果你对卡拉云感兴趣,欢迎试用 或者继续关注我们的技术博客
你可能感兴趣的:(最好的 6 个 React Table 组件详细亲测推荐)
LabVIEW发电平台数据采集系统
LabVIEW开发
LabVIEW开发案例 LabVIEW开发案例
本文详细介绍了基于LabVIEW的摇臂式波浪发电平台数据采集系统的设计与实现。通过整合LabVIEW软件与多种传感器技术,本系统能够有效提升数据采集的准确性和效率,为波浪能的利用和发电设备的优化提供科学依据。项目背景随着全球能源需求增长和环境保护意识的提升,波浪能作为一种清洁、可再生的能源被越来越多地关注。本项目旨在开发一套高效的波浪发电数据采集系统,以优化设备性能和提高能源转换效率,特别是在复杂
CSS动画:性能优化指南
双囍菜菜
前端随记 css 性能优化 前端
CSS动画性能优化指南关键词:重排重绘、硬件加速、合成层、性能分析文章目录CSS动画性能优化指南一、浏览器渲染机制:理解性能瓶颈根源1.1像素管道(PixelPipeline)全流程1.2各阶段性能损耗对比二、性能分析实战:ChromeDevTools深度使用2.1性能问题定位四步法2.2关键指标解读三、六大核心优化策略3.1硬件加速的正确打开方式3.2避免布局颠簸(LayoutThrashing
新型蜜罐有哪些?未来方向如何?
网安技术分享
安全 wireshark 测试工具 网络 网络安全
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"rel="stylesheet"/>href="https://csdnimg.cn/release/blogv2/dist/mdedi
2025年零基础入门学网络安全(详细),看这篇就够了
网安大师兄
web安全 安全 网络 网络安全 密码学
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是
202年充电计划——自学手册 网络安全(黑客技术)
网安康sir
web安全 安全 网络 php 开发语言
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客(网络安全)学习
单调栈详解【C/C++】
ん贤
算法 单调栈 算法 c++ 数据结构 贪心算法
前言:了解过单调队列后,你会发现单调栈的思想其实挺简单...当然前提是要了解一下什么是栈(stack)。看待一个问题,从不同角度,也许能有不同的收获。在数学家眼中,单调栈本质上是一个严格或非严格维护的单调递增或单调递减的数学结构。其核心在于动态的维护动态递增或递减的有序关系。而对于算法工程师,他们首先关注单调栈的核心优势:O(n)的时间复杂度。在需要遍历序列,并纪录极值的情况下(如接雨水、每日温度
优先队列 priority_queue详解
ん贤
算法 数据结构 算法 优先队列 c++ java
说到,priority_queue优先队列。必须先要了解啥是堆与运算符重载(我在下方有解释)。否则只知皮毛,极易忘记==寸步难行。但在开头,还是简单的说下怎么用首先,你需要调用#include在main函数中,声明格式为:priority_queue队列名;priority_queuei;priority_queued;常用操作priority_queuep;p.size();//获取长度p.em
基于LangChain-Chatchat实现智能问答系统
2301_79125431
java
题解|#统计输入正数个数#5.6importjava.util.*;publicclassMain{publics广汽丰田发动机薪酬福利待遇1、工作时间:基本上为5天8小时工作制;2、薪资结构:基本工资+加班工资+各类补贴津贴+各类慰问金+小红书24届春招和25届实习,内部推荐小红书24届春招和25届实习,推荐码为:0T019BWYNARK,内推码仅适用于校招内推及微信小程序题解|#试卷发布当天作
24远景能源-动力,10月最后一周面试!【NTAKYsW】
2301_79125642
java
大模型公司收实习啦,入局好机会,全是大佬不卷后端研发实习生简历投递请联系我,牛客会屏蔽邮箱日常实习:面向全体在校生,为符合岗位要求的同学提供为期3个月及以上的项目实践机会。公司介绍下午移动笔试,晚上联通笔试我看到好多投移动都去面试了,但是我没有面试也没有任何消息,而且智联校园上面hr也没有查看,这是怎么回事,难道是随便发的笔试吗...应该投的是什么AI研究中心联通许愿美团商分octl:一面-10.
美团-测开
陈陈爱java
postman
【软件测试】白盒测试与黑盒测试_白盒测试和黑盒测试-CSDN博客软件测试理论与实践:涵盖数据库、网络、自动化测试-CSDN博客对测开的理解通过技术手段来测试和优化软件,测试功能是否能正常运行,存在哪些漏洞,提高系统的稳定性。而且思维要活跃,能够构建一些测试体系。分析产品需求,参考技术方案,指定合理高效的测试方案,编写清晰的测试用例发现、定位、跟踪产品缺陷,协同开发解决问题开发高效的自动化测试工具
23种设计模式-抽象工厂(Abstract Factory)设计模式
程序员汉升
# 设计模式 设计模式 java 抽象工厂模式
抽象工厂设计模式什么是抽象工厂设计模式?抽象工厂模式的特点抽象工厂模式的结构抽象工厂模式的优缺点抽象工厂方法的Java实现代码总结总结什么是抽象工厂设计模式?抽象工厂模式(AbstractFactoryDesignPattern)是一种创建型设计模式,它提供了一种方式来创建一系列相关或相互依赖的对象,而无需指定它们的具体类。与工厂方法模式的区别在于,抽象工厂模式通常用于处理产品族的创建,确保创建的
AR眼镜——软件技术栈的必经之路
Julian.zhou
人机交互 未来思考 人工智能 ar 人工智能 交互 空间计算 语言模型
AR眼镜软件技术栈的必经之路:从操作系统到生态构建的深度解析摘要AR眼镜作为下一代人机交互入口,其软件技术栈的成熟度直接决定了用户体验与市场渗透率。本文基于行业最新技术动态与头部企业布局,深度剖析AR眼镜软件行业必须突破的七大技术方向,揭示从底层框架到应用生态的全栈技术储备路径。一、操作系统与底层框架:实时性与轻量化的双重革命AR眼镜软件生态的根基在于操作系统的定制化与优化,需满足三大核心需求:实
Caffeine vs Guava Cache:性能巅峰对决,谁才是 Java 本地缓存之王?
Julian.zhou
Java 开发基础技能 缓存 java 算法
CaffeinevsGuavaCache:性能巅峰对决,谁才是Java本地缓存之王?导语:在Java本地缓存的战场上,Caffeine和GuavaCache是开发者最常用的两大神器。但究竟谁的性能更胜一筹?为何Caffeine被称为“GuavaCache的终结者”?本文通过算法原理、并发性能、内存管理、实战测试四大维度,彻底揭秘两者的性能差异,文末附迁移指南和选型建议!一、核心差异:算法与淘汰策略
【颠覆性缓存架构】Caffeine双引擎缓存实战:CPU和内存双优化,命中率提升到92%,内存减少75%
Julian.zhou
架构相关 Java 开发基础技能 算法 缓存 架构 java
千万级QPS验证!Caffeine智能双缓存实现92%命中率,内存减少75%摘要:本文揭秘千万级流量场景下的缓存革命性方案!基于Caffeine打造智能双模式缓存系统,通过冷热数据分离存储与精准资源分配策略,实现CPU利用率降低60%、内存占用减少75%的惊人效果。文末附可复用的生产级代码!一、经典方案的致命陷阱:资源浪费之谜1.1真实事故现场案例回放:某电商大促期间,缓存集群CPU飙升至90%导
31天Python入门——第10天:深入理解值传递·引用传递以及深浅拷贝问题
安然无虞
Python手把手教程 python 开发语言 后端 pyqt
你好,我是安然无虞。文章目录1.什么是对象2.对象类型3.引用传递3.1基本概念3.2不可变对象和可变对象的引用传递不可变对象可变对象3.3函数参数传递中的引用传递不可变对象作为参数可变对象作为参数3.4如何避免可变对象引用传递带来的问题3.5总结:值传递和引用传递4.深浅拷贝问题4.1浅拷贝4.2深拷贝4.3使用场景1.什么是对象如果你学过驾驶,八成被教练骂过吧?可能你的脑海中现在还回荡着教练粗
nginx助力打包部署
潜意识Java
Java知识 java nginx 开发语言
目录一、打包部署基础入门(一)为什n么要打包部署(二)打包部署的基本流程二、Java项目打包(一)使用Maven进行打包(二)使用Gradle进行打包三、服务器环境准备(一)选择合适的服务器(二)安装Java运行环境四、Nginx初相识(一)Nginx是什么(二)Nginx的安装五、Nginx配置Java项目反向代理(一)反向代理的概念(二)Nginx反向代理配置示例六、Nginx实现负载均衡(一
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
一键难忘
harmonyos 分布式 华为 HarmonyOS Next
鸿蒙技术分享:HarmonyOSNext深度解析:分布式能力与跨设备协作实战随着万物互联时代的到来,操作系统作为连接设备、应用与用户体验的核心,扮演着不可或缺的角色。华为最新发布的HarmonyOSNext(鸿蒙操作系统下一代版本)不仅在技术架构上实现了颠覆性升级,更在生态体验上迈向了一个新的高度。本文将从技术架构、生态优势和开发实践三个方面深入探讨HarmonyOSNext的技术特点,并通过一个
简单工厂模式与策略模式的区别
java程序员CC
简单工厂模式 策略模式
相似之处:都用于松耦合不同之处:简单工厂模式:只关注传入的参数,对于后续的具体执行逻辑不关注(工厂会自动根据传入的参数类型生产对应的产品)核心目的:隐藏创建对象的具体逻辑,客户端只需传入参数,由工厂决定实例化哪个具体类。使用场景:适用于产品类较少,且不会频繁增加新产品类的情况。它简化了客户端的使用,但违反了开闭原则(对扩展开放,对修改关闭),因为增加新产品时需要修改工厂类。示例:不同的登录类型(手
java面试题,既然你说到了创建线程池,那么你知道创建线程池的方式有哪几种吗?
java程序员CC
java 开发语言
在Java中,创建线程池的方式有多种,其中比较常用的方式包括:FixedThreadPool(固定大小线程池):通过Executors.newFixedThreadPool(intn)方法创建,线程池中的线程数量固定为n,适合处理任务量稳定的场景。CachedThreadPool(缓存线程池):通过Executors.newCachedThreadPool()方法创建,线程池的线程数量不固定,根据
java集合List,Set,Map怎么理解存储数据有序,无序以及可重复,不可重复
java程序员CC
JAVA基础 java 面试 list
学习java已经有一段时间了,在练习开发项目的过程中经常用到List和Map却不知道其到底有何区别,今天整理了一下知识点对这几个进行浅显易懂的区分。PS:本文中的“有序”指的是存储数据时输入顺序与数据输出顺序相等,“唯一”:指的是不重复首先我们知道java集合有两个接口;一个是Collection,一个是Map;其中Colection衍生出了两个子接口也就是平时我们常见的--List【有序,不唯一
定时任务调度框架xxl-job与quartz的区别
java程序员CC
java
XXL-Job和Quartz都是Java项目中常用的定时任务框架,它们有以下几点区别:xxl-job和Quartz都是用于任务调度的开源框架,它们之间有一些区别,主要体现在以下几个方面:语言支持:Quartz主要是基于Java的任务调度框架,支持Java语言。xxl-job是一个分布式任务调度平台,它提供了Java版本的调度中心,同时还提供了Python、PHP等语言的任务执行器,因此支持多种语言
安卓NAS,众乐影音APP,低成本打造全能家庭存储中心
DeepSeek+NAS
安卓nas winnas AINAS nas 家用nas 小米nas 飞牛nas
在数字化时代,数据存储和共享需求日益增长,NAS设备成为家庭和办公场景中的重要工具。然而,传统NAS设备价格高昂,操作复杂,让许多用户望而却步。如今,耘想公司推出的众乐影音APP,以其创新的理念和强大的功能,彻底改变了这一局面。它不仅是一款安卓影音播放器,更是一款低成本、全功能的安卓NAS解决方案,让普通用户也能轻松享受NAS的便利。一、众乐影音APP的核心功能1.低成本NAS解决方案众乐影音AP
Windows配置opencv详细教程
吃旺旺雪饼的小男孩
环境配置 windows opencv 人工智能 计算机视觉
Windows配置opencv1.安装CMakeCMake安装步骤:2.安装VisualStudioVisualStudio安装步骤:3.下载OpenCV源码下载步骤:4.配置OpenCV使用CMake4.1.配置CMakeGUI4.2.配置选项5.使用VisualStudio编译OpenCV5.1.打开VisualStudio项目5.2.编译OpenCV6.配置开发环境(VisualStudio
稳定运行的以Microsoft Azure SQL database数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
weixin_30777913
etl azure etl 云计算 数据库
在以MicrosoftAzureSQLDatabase为数据源和目标的ETL(Extract,Transform,Load)过程中,性能问题可能会随着数据量的增加、查询复杂度的提升或系统负载的加重而逐渐变差。提高以MicrosoftAzureSQLDatabase为数据源和目标的ETL性能需要综合考虑数据库查询优化、数据加载策略、并行处理、资源管理等方面。通过合适的索引、查询优化、批量处理、增量加
【Golang学习】第十章 goroutine和channel
Entin_7
Golang学习 golang 开发语言
目录一、goroutine1.创建goroutine(1)格式(2)示例2.协程管理二、channel1.channel的创建2.channel的类型3.channel的读写操作4.channel的关闭5.channel的遍历6.channel与select配合使用7.通过channel实现goroutine的通信一、goroutinegoroutine是Go语言中的轻量级线程实现,由Go运行时(
springboot poi 后端手撕excel自定义表格。包括插入列表、跨行跨列合并
uutale
java应用 spring boot excel 后端
文章目录前言一、成品展示二、引入二、RestTemplateConfig三、接收实体ReturnResponse四、WriteExcelTableController总结前言这个程序是因为我需要根据数据库返回的数据生成excel,涉及到跨行跨列合并,表格list填充。填充后调用另一个项目的上传接口,把文件转成字节流传输过去,你们在自己进行使用的时候可以把字节流转成file存到本地。这里的代码有很多
鸿蒙系统架构解析:深入理解分层设计与功能实现
斯陀含
harmonyos 架构 华为
鸿蒙系统架构解析:深入理解分层设计与功能实现鸿蒙操作系统(HarmonyOS)是华为推出的全新分布式操作系统,其独特的架构设计是其核心竞争力之一。本文将深入探讨鸿蒙系统的分层架构,从内核层到应用层,逐层剖析其功能和作用,并结合实例帮助读者更好地理解鸿蒙系统的设计理念。一、鸿蒙系统架构概览鸿蒙系统采用分层架构设计,将系统划分为四个层次:内核层、系统服务层、框架层和应用层。这种分层架构具有以下优势:模
鸿蒙开发:ArkTs语言变量和常量
前言本文代码案例基于Api13。正因为有了变量和常量,才有了程序之间的数据存储和管理,无论是变量还是常量,在命名的时候,一定要知名其意,能够很好的表达出所声明的意图,这一点非常的重要,千万不要以拼音或者简单的字母进行定义,不为别的,我害怕别人嘲笑你。变量(Variable)变量是一种用于存储数据的容器,并且其存储的数据值可以在程序执行过程中被改变,变量通常有一个名字(标识符),用于在程序中引用它。
量子位招聘 | DeepSeek帮我们改的招聘启事
量子位
关注前沿科技量子位未来同事,你好~这是一则招聘帖。如果你与我们志同道合,对AI大模型、具身智能、终端硬件、AI新媒体编辑感兴趣,我们正在招聘这些领域的原创作者。以下岗位均为全职,工作地点:北京中关村。岗位面向:社招、应届毕业生,所有岗位均可实习——表现出色均可转正加分项:乐于探索AI新工具,善用AI新工具;拥有解读论文的能力,能深入浅出讲解原理;有写代码能力;量子位长期读者。加入我们,你可以获得:
SvelteKit 最新中文文档教程(8)—— 部署 Node 服务端
前言Svelte,一个语法简洁、入门容易,面向未来的前端框架。从Svelte诞生之初,就备受开发者的喜爱,根据统计,从2019年到2024年,连续6年一直是开发者最感兴趣的前端框架No.1:Svelte以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构建轻量级Web项目。为了帮助大家学习Svelte,我同时搭建了Svelte最新的中文文档站点。如果需要进阶学习,也可以入手我
java数字签名三种方式
知了ing
java jdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
erlang之parse_transform编译选项的应用
616050468
parse_transform 游戏服务器 属性同步 abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
工作流Activiti5表的命名及含义
atongyeye
工作流 Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
android的广播机制和广播的简单使用
百合不是茶
android 广播机制 广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
Spring事务传播行为详解
bijian1013
java spring 事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
Spring 事务实现机制
BlueSkator
spring 代理 事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrap dropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
常用代码记录
chenjunt3
UI Excel J#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
搜索引擎与工作流引擎
comsci
算法 工作 搜索引擎 网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
oracle Health Monitor
daizj
oracle Health Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
JSON字符串转换为对象
dieslrae
java json
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
14.性能优化-优化-软件配置优化
frank1234
软件配置 性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
一个不错的shell 脚本教程 入门级
HarborChung
linux shell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring 动态代理 spring4 依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
Linux设置tomcat开机启动
liuxingguome
tomcat linux 开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
Java开发熟手该当心的11个错误
tomcat_oracle
java jvm 多线程 单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
正则表达式大全
yang852220741
html 编程 正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$