Grid.js - 跨框架的前端表格插件

2022-01-09 IT大咖說

只想簡簡單單畫個表格,但 React,Vue,Angular,…,這麼多前端框架,各自都有不同的表格渲染庫。就沒有表格庫能「一次畫表,到處運行」嗎?來看看 Grid.js 這個跨框架的前端表格插件吧!

簡介

Grid.js,是 Github 上 grid-js 組織開源的前端表格插件,代碼倉庫在 
https://github.com/grid-js/gridjs,目前版本為 1.4.2。Grid.js 的標語是

A table library that works everywhere

也即是一個可以到處運行的表格庫。Grid.js 沒有第三方依賴鎖定,其唯一的外部依賴已經被打包在內,意味著它能在所有的前端框架,包括沒有框架的情況下使用。

Grid.js 使用 TypeScript 開發,大小僅為 12KB,支持所有現代瀏覽器,並利用內部管線技術獲得了高速性能。

Grid.js表格插件

安裝

在 Node.js 環境使用 Grid.js,可使用 npm 進行安裝:

npm install gridjs --save

使用時需要導入 Javascript 和 CSS 文件:

import { Grid } from "gridjs";
import "gridjs/dist/theme/mermaid.css";

而在瀏覽器環境中使用時,可以直接引用 CDN 使用:

<script src="https://unpkg.com/gridjs/dist/gridjs.production.min.js"></script>
<link href="https://unpkg.com/gridjs/dist/theme/mermaid.min.css" rel="stylesheet" />

示例

使用 Grid.js 時,需要一個 div 元素的 wrapper,然後創建一個 Grid.js 的 Grid 實例,定義表格的配置參數,最後調用 render 方法,完成渲染。

一個使用瀏覽器的例子如下:

<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://unpkg.com/gridjs/dist/theme/mermaid.min.css"
rel="stylesheet"
/>
</head>
<body>
<div id="wrapper"></div>
<script src="https://unpkg.com/gridjs/dist/gridjs.production.min.js"></script>
<script>
new gridjs.Grid({
columns: ["Name", "Email", "Phone Number"],
data: [
["John", "john@example.com", "(353) 01 222 3333"],
["Mark", "mark@gmail.com", "(01) 22 888 4444"],
["Eoin", "eoin@gmail.com", "0097 22 654 00033"],
["Sarah", "sarahcdd@gmail.com", "+322 876 1233"],
["Afshin", "afshin@mail.com", "(353) 22 87 8356"]
]
}).render(document.getElementById("wrapper"));
</script>
</body>
</html>

可以看到,gridjs.Grid 使用了參數 columns 來定義列,以及 data 來添加各行的數據。類似的,Grid.js 在 React 中的例子如下:

import { Grid } from "gridjs";
import "gridjs/dist/theme/mermaid.css";
function helloWorld () {
const grid = new Grid({
columns: ['Name', 'Email', 'Phone Number'],
data: [
['John', 'john@example.com', '(353) 01 222 3333'],
['Mark', 'mark@gmail.com', '(01) 22 888 4444']
]
});

useEffect(() => {
grid.render(document.getElementById('wrapper'));
});

return (
<div id="wrapper" />
);
}

不難看出,Grid.js 的使用方法是一致的,兩份代碼都渲染出了美觀的表格。

Grid.js表格示例

Grid.js的設計十分簡潔,主要參數包括:

data:類型為 T[][] 或 Function,表格每行的數據。data 可以是一個包含各個單元格數據的二維數組,也可以是一個返回可解析為二維數組的函數,以實現異步加載(Promise)和動態加載。

from:類型為 HTMLElement,已有的 HTML 表格元素。Grid.js 可以從一個現有的 HTML 的 form 元素生成一個 Grid 表格,添加樣式和其他功能。

server:遠程數據加載。server 是一個包含 url,以及可選的 then 和 opts 的對象,可以根據從 url獲取的遠程數據渲染表格。

// 使用server參數進行遠程數據加載
const grid = new Grid({
columns: ['Title', 'Director', 'Producer'],
server: {
url: 'https://swapi.dev/api/films/',
then: data => data.results.map(movie => [movie.title, movie.director, movie.producer])
}
});

Grid.js搜索

Grid.js分頁

總結

Grid.js 作為一個跨框架的前端表格插件,在各個前端框架中都能使用相同的 API 完成表格的定義和渲染,降低了使用不同框架時的學習成本,避免了各種不同依賴所帶來的問題。

同時,Grid.js 作為一個功能豐富的插件,提供了主流表格插件的大部分功能;且設計簡潔,性能優越,在一些定製化要求不高的表格應用場景中具有很大的優勢。

Grid.js 目前正處在積極開發的階段,版本號更新較快,有興趣的開發者可以參與開源貢獻。而作為一個 TypeScript 項目,Grid.js 代碼結構清晰,值得進一步研究學習。

來源:

https://www.toutiao.com/i6837266007539581454/

「IT大咖說」歡迎廣大技術人員投稿,投稿郵箱:aliang@itdks.com


 IT大咖說  |  關於版權 

由「IT大咖說(ID:itdakashuo)」原創的文章,轉載時請註明作者、出處及微信公眾號。投稿、約稿、轉載請加微信:ITDKS10(備註:投稿),茉莉小姐姐會及時與您聯繫!

感謝您對IT大咖說的熱心支持!

相關焦點

  • 前端插件庫
    前端插件庫DataTables
  • Ember.js和Vue.js,哪種框架更適合前端開發?
    隨著前端技術的發展,比起純JavaScript 腳本,大多數開發人員更喜歡使用基於JavaScript的框架來開發Web應用,如Vue、React等。這些框架大大簡化了你的代碼,也使你能夠完成更多的全棧工作。使用什麼類型的框架決定了應用程式的敏捷程度。因此,您必須慎重選擇。在充滿多樣性的前端生態中,有兩個框架十分引人矚目——Ember.js和Vue.js。
  • 10大前端開發框架
    前端開發框架有很多,其中有一些寫得很棒。為了大家的使用便利,下文列舉了目前最強大應用最廣泛的幾款前端開發框架。記住,這些框架並不僅僅是CSS 柵格之類的一些東西,它們包括的是整套的前端開發框架。1. BootstrapBoostrap絕對是目前最流行用得最廣泛的一款框架。
  • 前端高效開發必備的 js 庫梳理
    作者: 徐小夕 來源:趣談前端之前有很多人問學好前端需要學習哪些 js 庫, 主流框架應該學 vue 還是 react ? 針對這些問題, 筆者來說說自己的看法和學習總結。前端由於入行門檻低, 更新換代很快, 每年都會有大量新的框架和庫出現, 也有大量庫被淘汰(比如 JQuery, 但是學習它的設計思想很有必要). 所以我們大可不必擔心, 保持自己的學習步伐, 按需學習即可.
  • 【教程】學好前端必須要弄懂的框架!(附免費領取方式)
    ,估計有一大波同學都安耐不住想要進入前端這個高薪行業了。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍現在學習前端,一般都會學習Vue 和 React,但是這兩者對於零基礎的小白來說,未免有點難,jQuery就是最好的一個中間過度框架,對「新手」極其友好,學習了jQuery框架的思想,再開始學習Vue 和 React就簡單了。為了讓更多同學能輕鬆學會前端框架,播妞給大家分享一個jQuery框架免費教程。
  • Twitter BootStrap:前端框架利器
    Bootstrap的歷史為了應對複雜的需求,早期的Twitter前端工程師在開發網站時幾乎採用了所有自己熟悉的前端庫。造成了網站維護困難、擴展性不強、開發成本高等問題。此時BootStrap被提上了日程。Twitter要求前端工程師完全依靠這一單一框架進行前端開發。
  • Grid studio表格應用程式:Python的集大成者
    考慮到其重要性,Grid studio 通過集合交互式繪圖程序庫 Plotly.js 和Python 的標準Matploylib,對先進的繪圖具有內置支持,在向量銳化模式中為用戶提供了先進的繪圖功能。為了使你了解如何使用 Grid studio 的特殊功能,本文將展示它們是如何與具體實例相結合的。
  • 十大新興前端框架大盤點
    作者 | 司徒正美責編 | 伍杏玲2019年在整體上,前端的主流框架沒有太大的變化,業務代碼仍由三大框架(React、Vue、Angular)所主宰著,打包工具一般仍使用webpack、Rollup.js,狀態管理器還是Redux、MobX。
  • Axure 教程:利用圖表前端插件實現高級可視化圖表
    如何通過圖標前端插件完成高級可視化圖表?筆者在此給出了詳細教程,與大家分享~~後臺開發中避免不了實現一些可視化的圖表,主要製作的方法有四種:Excel表格截圖、Axure圖形繪製、Axure網頁框架和Axure第三方圖表元件。第三個「Axure網頁框架」需要結合antv、echarts、HighCharts等前端可視化插件代碼。
  • 前端開發大盤點:2015最流行前端框架TOP20
    2015年已經過去了,作為一個親歷前端開發多年的開發者,目睹和見證了前端開發從最初的Javascript 語言類庫到HTML5標準定稿後帶來的Web Components 跨終端組件的快速發展。
  • 【知識庫】八款你不得不知的開源前端JS框架
    本文推薦了八款比較熱門和經典的Javascript 開源框架,並給出了相關學習資料,有興趣的朋友可以看看~angular.js它實現了前端MVC架構,專注於擴展HTML功能,提供動態數據綁定(Data Binding),且能與其它框架(如jQuery)合作融洽。(項目詳情)相關文檔:相關下載:backbone
  • 製作跨瀏覽器兼容的Vue.js應用程式和所涉及的挑戰
    Web開發人員已經在解決諸如更快的開發時間,代碼可重用性,準確性等問題,並且正在構建強大的預打包框架以幫助開發。因此,他們將跨瀏覽器兼容性添加為這些框架的主要功能也就不足為奇了。在這些框架中,最受歡迎的一個是Vue.js,這篇文章是關於Vue.js應用程式中的跨瀏覽器兼容性。那麼,對於跨瀏覽器兼容的應用程式究竟意味著什麼呢?讓我們通過一個例子來理解它。
  • 各種前端框架 您應該選擇哪個?
    該框架還具有一些基於jQuery的可選JavaScript插件。然而,引導並不能支持從第三方來的任何JavaScript庫,而球隊已經公開宣布他們的計劃在引導5擺脫的jQuery。React:最佳JS選擇當前,React是所有前端JavaScript框架中的第一名。就像Bootstrap一樣,它是一個Web平臺框架,最初是社交媒體公司的內部項目。
  • 2020年的前端工程師請收下這幾個Vue.js開源框架
    vue是一套用於構建用戶界面的漸進式JavaScript框架,簡單說Vue是類似於view的前端框架。目前vue技術社區在英文或中文都非常豐富,社區都有很多經驗豐富的開發人員,其功能也非常豐富與使用性,屬於輕量級框架。vue還有一個優點是容易學習,有前端經驗的開發者容易上手,所以請前端開發者要掌握幾個實用的Vue.js開源框架。
  • 最受歡迎的 HTML、CSS 和 JS 框架
    前段時間,小編複習了一下前端框架--bootstrap,今天給大家分享一下!
  • 給Web 開發者的 25 款最有用的 AngularJS 工具
    2) AngularJS 測試框架 – Jasminejasmine 是為 JavaScript 用戶準備的另一個測試框架,適用於所有 Node.js 項目,網站。6) 最好的 AngularJS 工具 – MochajsMocha 是具有豐富特性的 JavaScript 測試框架,可以運行在 Node.js 和瀏覽器中,使得異步測試更簡單更有趣。
  • 去哪兒網前端架構師司徒正美:如何挑選適合的前端框架?
    最近幾年,前端技術迅猛發展,差不多每年都會冒出一款主流的框架。 每次新開業務線或啟動新項目時,首先第一件事就是糾結:使用什麼框架,重造什麼輪子?我很高興應CSDN的邀請談我的看法。RequireJS,前端技術發展分水嶺在五六年前,移動端還沒有興起,我們沒有什麼選擇,就是jQuery。
  • 前端框架選型指南
    ,一個人在stackoverflow中提了一個問題,如何使用javascript實現一個數字與另外一個數字相加。框架決定了什麼時候調用庫,決定了什麼時候要求代碼去執行特定功能而實際上,一個庫有時也可以稱之為框架,而庫裡面集成的方法稱之為庫框架和庫的區別不由實際大小決定,而由思考角度來決定。
  • 前端插件之Bootstrap Dual Listbox使用
    工欲善其事,必先利其器對於很多非專業前端開發來說寫頁面是非常痛苦的,藉助框架或插件往往能夠達到事半功倍的效果,本系列文章會介紹我在運維系統開發過程中用到的那些順手的前端插件,如果你是想寫XX管理系統的學生、或是需要獨自做Dashboard的後端工程師、亦或是像我這樣半吊子的開發加運維,那麼這個系列的文章你一定不要錯過Bootstrap Dual Listbox
  • 開源前端框架縱橫談
    本文試圖對目前數量繁多的前端框架進行一些較籠統的分析和比較,拋磚引玉,希望能為大家在選擇前端的技術架構時提供一些有益的參考。需要明確的是,本文探討的前端架構是以JavaScript為主。有一些主要關注CSS層面的前端框架,如Bootstrap,不在本文的討論範圍之內。今天的JavaScript框架和庫繁多複雜,很大程度上源於Web前端開發本身的特殊性。