1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Amazing 亞馬遜又一開(kāi)源力作!

        共 1486字,需瀏覽 3分鐘

         ·

        2020-12-07 18:09


        大家好,我是你們的huber。

        今天要推薦的是亞馬遜(Amazon)開(kāi)源的流程圖制作工具庫(kù):Diagram Maker。Diagram Marker 是一個(gè)支持全面定制化的開(kāi)源流程圖框架,且支持目前所有的前端框架(React、Vue 等),它同時(shí)提供了聲明式的接口從而降低將 Diagram Marker 集成到其他工具中的代碼成本。在此之外,還提供了很多內(nèi)建的交互式功能。

        以下是兩個(gè) Demo 示例:

        Diagram Marker?

        Diagram Marker 主要提供了如下 7 大核心能力:


        支持任意前端框架無(wú)縫集成

        Diagram Maker 支持任意的框架,比如 React、Vue 等,當(dāng)然你也可以直接在純 Javascript 或者 Typescript 代碼中使用。

        支持任意數(shù)據(jù)格式

        Diagram Maker 使用通用的扁平數(shù)據(jù)存儲(chǔ)格式,會(huì)存儲(chǔ)節(jié)點(diǎn)和邊的唯一 ID,以及 ID 之間的 Map 映射關(guān)系。這樣就可以將任何的圖類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為 Diagram Maker 支持的數(shù)據(jù)格式。為了避免數(shù)據(jù)之間的轉(zhuǎn)換和存儲(chǔ),Diagram Maker 還提供了數(shù)據(jù)的實(shí)時(shí)消費(fèi)模塊,用戶可以定義自己的數(shù)據(jù)消費(fèi)和生成方式,從而不用二次去存儲(chǔ)轉(zhuǎn)換后的數(shù)據(jù)。

        全面定制化

        Diagram Maker 支持用戶對(duì)外觀 UI 和主題的完全定制化,只需要對(duì)標(biāo)準(zhǔn)的 CSS 進(jìn)行覆蓋即可。除此之外,流程圖的行為也可以自由定制,用戶可以通過(guò)在事件傳遞過(guò)程中增加 Hook 的方式,修改最終觸發(fā)的行為,或者抑制原生組件的某些行為從而定義自己的事件行為或者擴(kuò)展新的事件。

        聲明式接口

        Diagram Maker 暴露了聲明式的接口,這樣用戶只需要提供對(duì)應(yīng)的連續(xù)的狀態(tài)數(shù)據(jù)就可以控制流程圖的狀態(tài)。對(duì)于流程圖中節(jié)點(diǎn)的渲染,Diagram Maker 支持用戶通過(guò) HTML 的方式對(duì)節(jié)點(diǎn)進(jìn)行全面的控制。而對(duì)于交互式的行為(比如拖拽),同樣支持對(duì)應(yīng)的聲明式屬性定義方式。

        比如以下是兩個(gè)節(jié)點(diǎn)的流程圖,和對(duì)應(yīng)的數(shù)據(jù)聲明定義。


        類(lèi)型綁定

        Diagram Maker 使用 Typescript 開(kāi)發(fā)的,意味著如果你使用 Typescript 的話,你可以捕獲在類(lèi)型檢查時(shí)的異常,避免對(duì)應(yīng)的錯(cuò)誤透?jìng)鞯缴a(chǎn)環(huán)境的 Web 頂層頁(yè)面。


        交互式功能

        Diagram Maker 提供了很多的交互式功能,用戶并不需要再重新實(shí)現(xiàn)。包括如下:

        • 內(nèi)建的節(jié)點(diǎn)拖拽

        • 通過(guò)拖拽的方式創(chuàng)建邊

        • 面板拖拽

        • 上下文菜單

        • 快捷鍵支持選擇所有、刪除等

        • 多狀態(tài)支持(比如拖拽、選擇、只讀等狀態(tài))

        • 內(nèi)建的 API 接口,比如撤銷(xiāo)或者重做、展示符合某個(gè)條件的所有節(jié)點(diǎn)、高亮某個(gè)節(jié)點(diǎn)、布局等



        可擴(kuò)展性

        Diagram maker 除了支持 UI 和行為的可定制化,同時(shí)支持插件的方式來(lái)擴(kuò)展庫(kù)的核心能力。

        為了支持如上所述的核心能力,Diagram maker 的頂層架構(gòu)如下,這有助于幫助我們更好的理解 Diagram maker 提供的核心能力。

        更多項(xiàng)目詳情請(qǐng)查看如下鏈接。

        傳送門(mén)

        開(kāi)源項(xiàng)目地址:https://github.com/awslabs/diagram-maker


        來(lái)源:GitHub精選

        版權(quán)申明:內(nèi)容來(lái)源網(wǎng)絡(luò),版權(quán)歸原創(chuàng)者所有。除非無(wú)法確認(rèn),我們都會(huì)標(biāo)明作者及出處,如有侵權(quán)煩請(qǐng)告知,我們會(huì)立即刪除并表示歉意。謝謝!





        感謝閱讀



        瀏覽 28
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            五月丁香婷婷久久 | 午夜激情视频在线观看 | 欧美福利在线 | 偷窥高潮呻吟啪啪另类 | 熟年交尾五十路视频 | 日逼高清 | 97精品一区二区视频在线观看 | 日韩三级片免费 | 国产精品伦 | 天堂在线视频中文 |