国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TySheMo 前端數(shù)據(jù)管理模型

SimonMa / 2681人閱讀

摘要:項目地址使用文檔使用案例是一個前端數(shù)據(jù)狀態(tài)管理工具。它面向復(fù)雜的前端數(shù)據(jù)管理,用于在前端結(jié)構(gòu)化數(shù)據(jù)的不斷變化中,清晰地控制數(shù)據(jù)變動,使數(shù)據(jù)變動不引起錯誤,并且方便表單數(shù)據(jù)的恢復(fù)校驗格式化提交。

項目地址:https://github.com/tangshuang...

使用文檔:https://www.tangshuang.net/71...

使用案例:https://github.com/tangshuang...

TySheMo是一個前端數(shù)據(jù)(狀態(tài))管理工具。它面向復(fù)雜的前端數(shù)據(jù)管理,用于在前端結(jié)構(gòu)化數(shù)據(jù)的不斷變化中,清晰地控制數(shù)據(jù)變動,使數(shù)據(jù)變動不引起錯誤,并且方便表單數(shù)據(jù)的恢復(fù)、校驗、格式化提交。

在需要對數(shù)據(jù)類型進行校驗,數(shù)據(jù)變動引發(fā)界面變動,數(shù)據(jù)校驗,格式化后輸出數(shù)據(jù),保證數(shù)據(jù)運算時得到想要的結(jié)果等一系列復(fù)雜的數(shù)據(jù)變化需求,TySheMo可以在項目中發(fā)揮不錯的的作用。雖然它不追求性能,但是在確保數(shù)據(jù)類型和格式安全上,它具有非常優(yōu)秀的思想,讓對數(shù)據(jù)有強烈依賴的業(yè)務(wù)可以在復(fù)雜的邏輯中保證不出錯。

類型檢查系統(tǒng)

雖然我們已經(jīng)有typescript這樣的類型檢查系統(tǒng),但是,typescript是在編譯時進行類型檢查的,在運行時,我們需要對一些動態(tài)的數(shù)據(jù)(特別是從后臺api返回的數(shù)據(jù))進行類型和格式檢查。在支持graphql的系統(tǒng)中似乎不必這么擔心,但目前大多數(shù)的restful應(yīng)用,還是需要有一個工具去做這樣的一件事。

TySheMo將數(shù)據(jù)類型的檢查抽象出三個層面的對象:原型、類型、規(guī)則。它們分別在原子、結(jié)構(gòu)、邏輯層面對數(shù)據(jù)進行校驗,而且是在運行時。如果校驗失敗,你還可以通過拋出的錯誤得到更為詳細的信息。

TySheMo內(nèi)部提供了多個數(shù)據(jù)原型(類似基礎(chǔ)數(shù)據(jù)類型)擴展,并且直接使用js標準庫中的內(nèi)置對象作為原型,免去需要用字符串來定義類型的麻煩。內(nèi)置了Dict, List, Enum, Tuple, Range這幾種類型。通過對后臺api數(shù)據(jù)的檢查,就可以即時避免由于api返回數(shù)據(jù)類型或結(jié)構(gòu)引起的錯誤。同時,它還提供了更為豐富的類型檢查規(guī)范,你可以閱讀它的文檔了解更多用法。

數(shù)據(jù)模式

TySheMo提供了一種定義結(jié)構(gòu)化數(shù)據(jù)的方式,用于對一個結(jié)構(gòu)化數(shù)據(jù)進行規(guī)范化定義。數(shù)據(jù)模式是一個抽象的數(shù)據(jù)結(jié)構(gòu)范型,它不是具體的數(shù)據(jù),但規(guī)定了數(shù)據(jù)本身的結(jié)構(gòu)規(guī)范。并且,作為工具庫,TySheMo提供了Schema類,schema實例擁有根據(jù)定義規(guī)范數(shù)據(jù)的能力。

更為重要的是Schema是一種數(shù)據(jù)結(jié)構(gòu)和行為邏輯約束的范例。行業(yè)里有json schema這樣的先驅(qū),我們在這些先行者的基礎(chǔ)上,提煉出對業(yè)務(wù)有幫助的部分,形成一套類似后臺數(shù)據(jù)庫結(jié)構(gòu)描述一樣的定義語言,用以在前端去描述一個結(jié)構(gòu)化,但隨時變化的數(shù)據(jù)對象。

它基于數(shù)據(jù)類型檢查系統(tǒng),你需要在type屬性傳入對應(yīng)的類型。對于Schema實例而言,它是無狀態(tài)的,它所提供的接口是純粹的工廠,不會產(chǎn)生任何內(nèi)部資源。這樣的設(shè)計,使得Schema有可能成為規(guī)范,在開發(fā)中/測試中,確保業(yè)務(wù)中給的數(shù)據(jù)是按照規(guī)范給定的,否則,就會拋出錯誤。

數(shù)據(jù)模型

TySheMo提供了基于Schema的數(shù)據(jù)模型Model,是一個管理狀態(tài)數(shù)據(jù)的容器。數(shù)據(jù)被放在數(shù)據(jù)模型中管理時,由于Schema的約束,數(shù)據(jù)不得不按照規(guī)范運行。它提供了當代數(shù)據(jù)響應(yīng)的特性,你可以觀察數(shù)據(jù)變化,從而來決定如何變動界面。

作為工具庫,TySheMo從業(yè)務(wù)出發(fā)對數(shù)據(jù)模型的寫作方式進行了約束。一個數(shù)據(jù)模型,是一個class,并且需要定義它的schema。要將數(shù)據(jù)放到模型中進行管理,你必須實例化模型,并且使用模型接口進行數(shù)據(jù)修改和格式化。但到最后,你會發(fā)現(xiàn),模型的使用異常簡單,真正復(fù)雜的部分,往往在于,如何通過Schema制定你的數(shù)據(jù)規(guī)范。

這只是對Model的數(shù)據(jù)響應(yīng)最簡單的一個演示,你還可以通過Model提供的能力,完成更多的事情。你可以把它和react, vue, angular結(jié)合使用,你可以在任何應(yīng)用中使用它。特別是在表單數(shù)據(jù)管理上,TySheMo可以做到非常出色。關(guān)于Model的細節(jié)和更多特性,你可以閱讀使用文檔了解。

結(jié)語

TySheMo不解決所有問題,而是專注將一個應(yīng)用中的某個局部的數(shù)據(jù)管理做到極致。你從來沒有體驗過,同一個表單的業(yè)務(wù)邏輯,你不需要修改業(yè)務(wù)邏輯代碼部分,而只需要修改UI交互的邏輯,就可以完全適應(yīng)react, vue, angular。你也許不需要它,但也許也需要它,這取決于你如何在你但應(yīng)用中管理你的數(shù)據(jù)。如果你對這個項目感興趣,可以通過github參與項目。

(完)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/104923.html

相關(guān)文章

  • [ 前端框架 ] 前端 MV*框架的意義

    摘要:從協(xié)作關(guān)系上講,很多前端開發(fā)團隊每個成員的職責不是很清晰,有了前端的框架,這個狀況會大有改觀。框架的理念是把前端按照職責分層,每一層都相對比較獨立,有自己的價值,也有各自發(fā)揮的余地。 簡介: MV框架又是為什么興起的呢?它的出現(xiàn),伴隨著一些 Web 產(chǎn)品逐漸往應(yīng)用方向發(fā)展,遇到了在 C/S 領(lǐng)域相同的問題:由于前端功能的增強、代碼的膨脹,導(dǎo)致不得不做前端的架構(gòu)這個事情了。經(jīng)常有人質(zhì)疑...

    fxp 評論0 收藏0
  • 通過項目逐步深入了解Spring MVC(一)

    摘要:是一個基于的框架。控制器將視圖響應(yīng)給用戶通過視圖展示給用戶要的數(shù)據(jù)或處理結(jié)果。有了減少了其它組件之間的耦合度。 相關(guān)閱讀: 本文檔和項目代碼地址:https://github.com/zhisheng17/springmvc 轉(zhuǎn)載請注明出處和保留以上文字! 了解 Spring: Spring 官網(wǎng):http://spring.io/ 一個好的東西一般都會有一個好的文檔解釋說明,如果你...

    whataa 評論0 收藏0
  • 前端培訓(xùn)-中級階段(3) - DOM 文檔對象模型(2019-06-27期)

    摘要:文檔對象模型是和文檔的編程接口文檔對象模型將頁面與到腳本或編程語言連接起來。通常是指,但將或文檔建模為對象并不是語言的一部分。文檔對象模型文檔對象模型圈起來的是比較常用的接口。目前接口繼承于接口。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠遠不止這些。前端小課堂(HTML/CSS/JS),本著提升技術(shù)水平...

    張紅新 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<