国产精品久久久久久2021,日韩精品无码av中文无码版,亚洲精品久久久午夜麻豆,无码成人精品日本动漫纯h

010-68421378
當前您所在的位置:首頁>新聞中心>新品發(fā)布

Handsontable 11.0.0已發(fā)布

發(fā)布時間:2022/04/22 瀏覽量:5965
Handsontable 11.0.0:React、Angular 和 Vue 的模塊化

Handsontable 11.0.0:React、Angular 和 Vue 的模塊化

更新:使用Handsontable 11.0.1,它修復了11.0.0中發(fā)現(xiàn)的Angular UMD包中的一個退步。

我們剛剛發(fā)布了Handsontable 11.0.0.這個版本為框架包裝器增加了模塊化功能,改進了monorepo結(jié)構(gòu),增加了一個新的locale選項,等等。

React、Angular和Vue的模塊化

模塊化是一種很好的方式,可以專注于對你重要的功能,定制你的網(wǎng)格,并減少你的應用程序的大小。

自從Handsontable 8.3.0以來,你已經(jīng)能夠在Handsontable的vanilla JavaScript版本中使用模塊?,F(xiàn)在,你也可以在Handsontable的每個框架版本(React、Angular和Vue)中使用模塊。

雖然這對我們所有的React、Angular和Vue用戶來說是個好消息,但這也是一個突破性的變化,因為你現(xiàn)在需要導入你想要使用的每個模塊。例如,要導入UndoRedo插件的模塊:

// import the `handsontable/base` module

import Handsontable from 'handsontable/base';

 

// import the `UndoRedo` module and the `registerPlugin()` function

import {

  registerPlugin,

  UndoRedo,

} from 'handsontable/plugins';

 

// register the `UndoRedo` module

registerPlugin(UndoRedo);

對模塊化不感興趣?不要害怕:我們還引入了新的方法,讓你一次性導入和注冊一個特定類別的所有模塊。

要了解更多關(guān)于Handsontable的模塊,請看我們的文檔。

要了解如何在你的框架中使用模塊,請看其中的一個指南:

修訂和模塊化的TypeScript定義

自從我們在Handsontable 8.3.0中引入模塊化后,我們想讓每個模塊都能完全支持TypeScript。

為了實現(xiàn)這一目標,我們決定刪除龐大的、涵蓋所有TypeScript定義的文件(以前位于根目錄:./handsontable.d.ts)。取而代之的是,我們用一組整齊的小文件(現(xiàn)在位于一個新的目錄:./handsontable/types)取代它,專門用于Handsontable的各個部分。

因此,我們仔細檢查并修改了幾乎所有的Handsontable的類型定義。為什么這很重要?有幾個原因:

從TypeScript用戶的角度來看,如果你導入整個Handsontable庫,一切都會保持不變。所有的類型定義都在導入Handsontable包時被加載。

import Handsontable from 'handsontable';

新的事情是,現(xiàn)在,當你導入個別模塊時,類型定義也會自動加載,例如:

import Handsontable from 'handsontable/base';

 

import { registerPlugin, HiddenRows } from 'handsontable/plugins';

 

const hiddenRows = Handsontable.plugins.HiddenRows;

更清潔的 monorepo 結(jié)構(gòu)

在 Handsontable 8.3.2 中,我們將所有 Handsontable 版本(JavaScript、Angular、React 和 Vue)放在一個單一的單一存儲庫中。

現(xiàn)在,為了更輕松地管理 monorepo,并為 Snyk 或 npm-audit 等第三方工具添加更好的支持,我們將 Handsontable 的主要 JavaScript 包放置在其自己的專用工作區(qū)中。 我們將它從根目錄移動到一個新的子目錄:./handsontable,將它放置在與框架包裝器相同的級別:

前:

后:


關(guān)于構(gòu)建如果您計劃為 Handsontable 的存儲庫做出貢獻,或者您在本地構(gòu)建自己的 Handsontable 版本,則此更改可能會影響您。 除此之外,它不應以任何方式影響您的應用程序。

了解 Handsontable 的構(gòu)建過程概覽。

Monorepo

Handsontable 存儲庫 (打開新窗口)是一個 monorepo (打開新窗口),其中包含以下項目:

項目

位置

描述

handsontable

./handsontable

Main Handsontable project

@handsontable/angular

./wrappers/angular

Angular wrapper

@handsontable/react

./wrappers/react

React wrapper

@handsontable/vue

./wrappers/vue

Vue 2 wrapper

所有項目都在同一版本號下一起發(fā)布。 但是每個項目都有自己的構(gòu)建和測試流程。

構(gòu)建過程

構(gòu)建過程將位于 ./handsontable/src/ 目錄中的源文件轉(zhuǎn)換為以下輸出文件:

不要修改上面提到的輸出文件。 相反,在 ./handsontable/src/ 目錄中進行更改,然后運行選定的構(gòu)建。 如果您想通過拉取請求將更改貢獻回 Handsontable,這一點尤其重要。

構(gòu)建要求

Handsontable 構(gòu)建過程需要:

package.json 文件

每個 Handsontable 項目都有自己的構(gòu)建過程,定義在自己的 package.json 文件中。 除此之外,根目錄也有自己的 package.json 文件:

文件

保持構(gòu)建任務:

./package.json

- 一次所有包
- 單獨包

./handsontable/package.json

JavaScript包

./wrappers/angular/package.json

Angular包

./wrappers/react/package.json

React包

./wrappers/vue/package.json

Vue包

運行你的第一個構(gòu)建

要運行您的第一個構(gòu)建:

構(gòu)建包

您可以一次構(gòu)建所有包,也可以單獨構(gòu)建每個包。

構(gòu)建所有包

要一次構(gòu)建所有包:

該腳本構(gòu)建以下包:

構(gòu)建 JavaScript 包

要構(gòu)建 JavaScript 包:

從根目錄構(gòu)建 JavaScript 包:

JavaScript 構(gòu)建任務

在 ./handsontable 目錄中,您還可以運行單獨的 JavaScript 構(gòu)建任務:

JavaScript 構(gòu)建任務

構(gòu)建 Angular 包

要構(gòu)建 Angular 包:

從根目錄構(gòu)建 Angular 包:

Angular構(gòu)建任務

從 ./wrappers/angular 目錄,您還可以運行單獨的 Angular 構(gòu)建任務:

 

Angular構(gòu)建任務

構(gòu)建 React 包

要構(gòu)建 React 包:

從根目錄構(gòu)建 React 包:

React構(gòu)建任務

從 ./wrappers/react 目錄,您還可以運行單獨的 React 構(gòu)建任務:

React構(gòu)建任務

構(gòu)建 Vue 包

要構(gòu)建 Vue 包:

從根目錄構(gòu)建 Vue 包:

增強的 populateFromArray() 方法

當 populateFromArray() 方法的方法參數(shù)設置為 shift_down 或 shift_right 時,它的工作方式現(xiàn)在有所不同。

之前,當設置為 shift_down 或 shift_right 時,populateFromArray() 為每行執(zhí)行單獨的 spliceRow 操作,或為每列執(zhí)行單獨的 spliceColumn 操作。

現(xiàn)在,當設置為 shift_down 或 shift_right 時,populateFromArray() 會用一個大型操作填充行(或列)。 性能上的差異確實令人印象深刻:

 

如果您使用由每個 spliceRow 和 spliceColumn 操作觸發(fā)的 beforeChange 和 afterChange 掛鉤,則需要適應這些變化。

新的語言環(huán)境選項

為了正確處理基于本地的數(shù)據(jù),我們給了Handsontable一個新的配置選項,叫做locale。默認情況下,它被設置為en-US。

到目前為止,我們只使用locale來確保正確過濾土耳其語的自定義搜索輸入,但我們計劃在未來擴大其使用范圍,以進一步定制功能,如過濾、搜索或比較不同的基于本地的數(shù)據(jù)集。這是改進Handsontable內(nèi)置國際化功能的一個很好的起點。

你可以為整個網(wǎng)格設置地域選項:

const hot = new Handsontable(container, {
  // set the entire grid's locale to Turkish
  locale: 'tr-TR',
});

但是您也可以為單個列設置它:

const hot = new Handsontable(container, {
  columns: [
    {
      // set the first column's locale to Polish
      locale: 'pl-PL',
    },
    {
      // set the second column's locale to German
      locale: 'de-DE',     
    },
    {
      // set the third column's locale to Japanese
      locale: 'ja-JP',
    },
  ],
});

要了解更多信息,請參閱 Handsontable 文檔。

更新文檔

正如所承諾的,我們會不斷改進 Handsontable 的文檔。 自上一個 Handsontable 版本以來,我們對 API 參考的選項部分進行了徹底檢查,重寫了一些指南(例如構(gòu)建),重新構(gòu)建了一些其他指南(例如模塊),添加了全新的指南(例如 React 模塊),添加了一些新的部分 現(xiàn)有指南(例如語言環(huán)境設置)等。

遷移指南

由于我們引入了一些向后不兼容的更改,因此我們準備了一份遷移指南,引導您逐步從 Handsontable 10 升級到 Handsontable 11。

第 1 步:React、Angular、Vue——注冊你的模塊

從 Handsontable 11.0.0 開始,React 包裝器、Angular 包裝器和 Vue 包裝器支持模塊化。

如果您不使用任何包裝器,則無需更改任何內(nèi)容。

使用所有模塊

要繼續(xù)將所有 Handsontable 模塊與您的包裝器一起使用,請使用新的 registerAllModules() 方法注冊所有模塊。

在應用程序的入口點文件中,添加以下代碼:

// import the registerAllModules() methodimport { registerAllModules } from 'handsontable/registry';

// register all Handsontable modulesregisterAllModules();

使用單個模塊

要開始在您的包裝器中使用單個 Handsontable 模塊,請參閱以下指南:

第 2 步:適應 TypeScript 定義文件的更改

以前,Handsontable 的所有 TypeScript 定義都保存在一個大文件中,放在根目錄中:./handsontable.d.ts。

現(xiàn)在,每個模塊都有自己的 TypeScript 定義文件。 它們都保存在一個新的類型目錄中:./handsontable/types (打開新窗口)。

有關(guān)更多詳細信息,請參閱此拉取請求 (打開新窗口)。

第 3 步:適應 populateFromArray() 方法的更改

當 populateFromArray() 方法的方法參數(shù)設置為 shift_down 或 shift_right 時,它的工作方式現(xiàn)在有所不同。

new Handsontable(element, {

  afterChange: (changes, source) => {

    if (source === 'spliceRow' || source === 'spliceCol') {

      handleChange(changes[0]);

    }

  }});

現(xiàn)在

new Handsontable(element, {

  afterChange: (changes, source) => {

    if (source === 'populateFromArray') {

      changes.forEach(change =>  handleChange(change))

    }

  }});

 

發(fā)行說明:我們添加的內(nèi)容

發(fā)行說明:我們改變了什么

發(fā)行說明:我們修復的內(nèi)容

 

下一篇:DbVisualizer 13.0發(fā)布了
上一篇:KubeSphere:輕量化虛擬機管理平臺

                               

 京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155

                                   © Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室

                         北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫

                            華滋生物