日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

開源推薦! 一款開箱即用的電子簽名組

來源: 責(zé)編: 時(shí)間:2023-10-31 10:26:01 281觀看
導(dǎo)讀hello, 大家好, 我是徐夕, 今天又到了分享時(shí)間. 今天和大家分享一下我最近開源的輕量級(jí)電子簽名組件——react-sign2。我們可以使用它輕松的實(shí)現(xiàn)電子簽名, 比如說常用的合同簽字, 文稿簽名, 藝術(shù)簽名等, 并支持一鍵將

UVg28資訊網(wǎng)——每日最新資訊28at.com

hello, 大家好, 我是徐夕, 今天又到了分享時(shí)間. 今天和大家分享一下我最近開源的輕量級(jí)電子簽名組件——react-sign2。UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

我們可以使用它輕松的實(shí)現(xiàn)電子簽名, 比如說常用的合同簽字, 文稿簽名, 藝術(shù)簽名等, 并支持一鍵將簽名保存。UVg28資訊網(wǎng)——每日最新資訊28at.com

基本使用

我們要想直接使用, 可以在 npm 上安裝 react-sign2 :UVg28資訊網(wǎng)——每日最新資訊28at.com

# 或者yarn add react-sign2npm i react-sign2

然后一個(gè)簡單的使用如下:UVg28資訊網(wǎng)——每日最新資訊28at.com

import Sign from 'react-sign2';export default () =>   <Sign width={400} onDrawEnd={(c) => console.log(c)} />;

react-sign2還提供了很多可定制的屬性, 來方便使用者靈活定制電子簽名, 以下是開放性屬性介紹:UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

比如我可以調(diào)整線條的顏色:UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

調(diào)整線條寬度:UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

在具體使用的時(shí)候靈活配置即可, 我還提供了業(yè)務(wù)中經(jīng)常用到的監(jiān)聽事件, 方便使用者靈活調(diào)用:UVg28資訊網(wǎng)——每日最新資訊28at.com

  • onSave 保存時(shí)的回調(diào)。
  • onClear 當(dāng)畫布清空時(shí)的回調(diào)。
  • onDrawEnd 每次繪制結(jié)束時(shí)的回調(diào)。

實(shí)現(xiàn)思路

按照筆者之前的習(xí)慣, 在設(shè)計(jì)組件之前都會(huì)先明確組件的設(shè)計(jì)需求, 然后根據(jù)健壯組件的設(shè)計(jì)原則來落地組件, 這里給大家分享一下我總結(jié)的幾條組件設(shè)計(jì)經(jīng)驗(yàn):UVg28資訊網(wǎng)——每日最新資訊28at.com

  • 對(duì)組件進(jìn)行嚴(yán)格的屬性設(shè)計(jì), 保證業(yè)務(wù)層能低成本使用組件, 并保持一定的可配性。
  • 組件內(nèi)外部類型約定(ts規(guī)范), 并提供對(duì)邏輯的兼容性。
  • 可讀性(代碼格式統(tǒng)一清晰,注釋完整,代碼結(jié)構(gòu)層次分明,編程范式使用得當(dāng))。
  • 可用性(代碼功能完整,在不同場(chǎng)景都能很好兼容,業(yè)務(wù)邏輯覆蓋率)。
  • 復(fù)用性(代碼可以很好的被其他業(yè)務(wù)模塊復(fù)用)。
  • 可維護(hù)性(代碼易于維護(hù)和擴(kuò)展,并有一定的向下/向上兼容性)。
  • 高性能(組件具有一定的性能, 如復(fù)雜場(chǎng)景的渲染, 計(jì)算等)。

對(duì)于電子簽名組件, 我們最小化的需求就是能滿足用戶的線上簽名, 并能保存簽名數(shù)據(jù)。UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

以上就是我們最小化的需求, 為了滿足我總結(jié)的組件設(shè)計(jì)幾大原則, 我們需要對(duì)組件進(jìn)行近一步的需求分析: 簽名的顏色, 筆觸的粗細(xì), 平滑度, 支持自定義事件等。UVg28資訊網(wǎng)——每日最新資訊28at.com

這些都是組件第一個(gè)階段可以想到的配置點(diǎn), 也是能應(yīng)對(duì)第一階段業(yè)務(wù)需求的功能, 所以有了第一版的組件需求設(shè)計(jì):UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

接下來就需要用 typescript 來規(guī)范組件的輸入和輸出了. 具體定義如下:UVg28資訊網(wǎng)——每日最新資訊28at.com

export interface IProp {  /**   * @description   畫布寬度   * @default       400   */   width?: number;   /**    * @description   畫布高度    * @default       200    */   height?: number;   /**    * @description   線寬    * @default       4   */   lineWidth?: number;   /**    * @description   線段顏色    * @default       'red'   */   strokeColor?: string;   /**    * @description   設(shè)置線條兩端圓角    * @default       'round'   */   lineCap?: string;   /**    * @description   線條交匯處圓角    * @default       'round'   */   lineJoin?: string;   /**    * @description   畫布背景顏色    * @default       'transparent'   */   bgColor?: string;   /**    * @description   true   */   showBtn?: boolean;   /**   * @description   當(dāng)保存時(shí)的回調(diào), blob為生成的圖片bob   * @default       -   */   onSave?: (blob: Blob) => void;  /**   * @description   當(dāng)畫布清空時(shí)的回調(diào), 參數(shù)為畫布的上下文對(duì)象,可以直接使用canvas的api   * @default       -   */   onClear?: (canvasContext: CanvasRenderingContext2D) => void;   /**   * @description   當(dāng)畫布結(jié)束時(shí)的回調(diào)   * @default       -   */   onDrawEnd?: (canvas: HTMLCanvasElement) => void;}

接下來就到了我們具體的代碼實(shí)現(xiàn)階段. 由于電子簽名的核心技術(shù)采用的是canvas(雖然用dom和svg也可以實(shí)現(xiàn)), 所以無論你是用的react還是vue3, 或者似乎原生態(tài)javascript, 都能低成本的封裝. 這里筆者采用全球程序員最愛用的react 來實(shí)現(xiàn)。UVg28資訊網(wǎng)——每日最新資訊28at.com

UVg28資訊網(wǎng)——每日最新資訊28at.com

以上是組件的基本屬性定義和代碼結(jié)構(gòu), 畫圖部分涉及到 canvas 的比較細(xì)節(jié)的部分。UVg28資訊網(wǎng)——每日最新資訊28at.com

具體實(shí)現(xiàn)的源碼我已經(jīng)上傳到github, 感興趣的朋友大家可以參考一下。UVg28資訊網(wǎng)——每日最新資訊28at.com

github: https://github.com/MrXujiang/react-signUVg28資訊網(wǎng)——每日最新資訊28at.com

大家如果想直接使用, 可以使用如下方式安裝使用:UVg28資訊網(wǎng)——每日最新資訊28at.com

react-sign2 官方演示文檔UVg28資訊網(wǎng)——每日最新資訊28at.com

參考資料

  1. https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API。
  2. https://juejin.cn/post/7174251833773752350。

本文鏈接:http://www.www897cc.com/showinfo-26-16012-0.html開源推薦! 一款開箱即用的電子簽名組

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: C++讀取文件和寫入文件內(nèi)容實(shí)例詳解

下一篇: 數(shù)據(jù)結(jié)構(gòu)分類以及數(shù)據(jù)結(jié)構(gòu)特點(diǎn)、優(yōu)缺點(diǎn)

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對(duì)Reader和Writer接口的組合,
  • SpringBoot中使用Cache提升接口性能詳解

    環(huán)境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對(duì) Spring 應(yīng)用程序提供了透明式添加緩存的支持。和事務(wù)支持一樣,抽象緩存允許一致地使用各
  • 得物效率前端微應(yīng)用推進(jìn)過程與思考

    一、背景效率工程隨著業(yè)務(wù)的發(fā)展,組織規(guī)模的擴(kuò)大,越來越多的企業(yè)開始意識(shí)到協(xié)作效率對(duì)于企業(yè)團(tuán)隊(duì)的重要性,甚至是決定其在某個(gè)行業(yè)競(jìng)爭中突圍的關(guān)鍵,是企業(yè)長久生存的根本。得物
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過購物網(wǎng)站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個(gè)小小的重要功能可以大大改善您網(wǎng)站的用戶體驗(yàn)
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運(yùn)營研究社作者 | 張知白編輯 | 楊佩汶設(shè)計(jì) | 晏談夢(mèng)潔這個(gè)暑期,旅游賽道徹底火了:有的「地方」火了&mdash;&mdash;貴州村超旅游收入 1 個(gè)月超過 12 億;有的「博主」火了&m
  • 得物寵物生意「狂飆」,發(fā)力“它經(jīng)濟(jì)”

    作者|花花小萌主近日,得物宣布正式上線寵物鑒別,通過得物App內(nèi)的&ldquo;在線鑒別&rdquo;,可找到鑒別寵物的選項(xiàng)。通過上傳自家寵物的部位細(xì)節(jié),就能收獲擁有專業(yè)資質(zhì)認(rèn)證的得物鑒
  • 自律,給不了Keep自由!

    來源 | 互聯(lián)網(wǎng)品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時(shí)不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺(tái)Keep正式登陸港交所,努力
  • 一條抖音4億人圍觀 ! 這家MCN比無憂傳媒還野

    作者:Hiu 來源:互聯(lián)網(wǎng)品牌官01 擦邊少女空降熱搜,幕后推手曝光被網(wǎng)友譽(yù)為&ldquo;純欲天花板&rdquo;的女網(wǎng)紅井川里予,近期因?yàn)橐唤M哥特風(fēng)照片登上熱搜,引發(fā)了一場(chǎng)互聯(lián)網(wǎng)世界關(guān)于
  • iQOO 11S評(píng)測(cè):行業(yè)唯一的200W標(biāo)準(zhǔn)版旗艦

    【Techweb評(píng)測(cè)】去年底,iQOO推出了“電競(jìng)旗艦”iQOO 11系列,作為一款性能強(qiáng)機(jī),該機(jī)不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺(tái)及144Hz電競(jìng)
Top 主站蜘蛛池模板: 鄄城县| 通许县| 乐平市| 四川省| 斗六市| 南郑县| 牙克石市| 广河县| 龙山县| 翁源县| 岳普湖县| 乐昌市| 小金县| 凉山| 白城市| 永安市| 雅安市| 广元市| 千阳县| 疏附县| 莎车县| 德庆县| 黔江区| 亚东县| 绥阳县| 山丹县| 九龙县| 金湖县| 门头沟区| 博客| 凤庆县| 建湖县| 红原县| 香河县| 黄冈市| 阿瓦提县| 成安县| 隆安县| 陕西省| 阜康市| 乐清市|