AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

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

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

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

基本使用

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

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

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

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

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

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

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

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

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

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

在具體使用的時(shí)候靈活配置即可, 我還提供了業(yè)務(wù)中經(jīng)常用到的監(jiān)聽事件, 方便使用者靈活調(diào)用:VyW28資訊網(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ì)組件之前都會先明確組件的設(shè)計(jì)需求, 然后根據(jù)健壯組件的設(shè)計(jì)原則來落地組件, 這里給大家分享一下我總結(jié)的幾條組件設(shè)計(jì)經(jīng)驗(yàn):VyW28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

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

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

接下來就需要用 typescript 來規(guī)范組件的輸入和輸出了. 具體定義如下:VyW28資訊網(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ù)為畫布的上下文對象,可以直接使用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)。VyW28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

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

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

參考資料

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

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

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

上一篇: 通過實(shí)例理解Web應(yīng)用用戶密碼存儲方案

下一篇: Rust編程基礎(chǔ)之變量與可變性

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 影音體驗(yàn)是真的強(qiáng) 簡單聊聊iQOO Pad

    大公司的好處就是產(chǎn)品線豐富,非常細(xì)分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發(fā)布會上看到了iQOO的首款平板產(chǎn)品iQOO Pad。雖
  • 2023 年的 Node.js 生態(tài)系統(tǒng)

    隨著技術(shù)的不斷演進(jìn)和創(chuàng)新,Node.js 在 2023 年達(dá)到了一個(gè)新的高度。Node.js 擁有一個(gè)龐大的生態(tài)系統(tǒng),可以幫助開發(fā)人員更快地實(shí)現(xiàn)復(fù)雜的應(yīng)用。本文就來看看 Node.js 最新的生
  • 自動化在DevOps中的力量:簡化軟件開發(fā)和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團(tuán)隊(duì)可以實(shí)現(xiàn)以下目標(biāo):消除手動和重復(fù)性任務(wù)。簡化流程。在整個(gè)軟件開發(fā)生命周期中實(shí)現(xiàn)更
  • 中國家電海外掘金正當(dāng)時(shí)|出海專題

    作者|吳南南編輯|胡展嘉運(yùn)營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預(yù)警不絕,但處于厄爾尼諾大&ldquo;烤&rdquo;之下的除了眾生,還有各大企業(yè)發(fā)布的ESG報(bào)告。ESG是&ldquo;環(huán)境保
  • 華為和江淮汽車合作開發(fā)百萬元問界MPV?雙方回應(yīng)來了

    8月1日消息,郭明錤今天在社交平臺發(fā)文稱,華為正在和江淮汽車合作,開發(fā)售價(jià)在100萬元的問界MPV,預(yù)計(jì)在2024年第2季度量產(chǎn),銷量目標(biāo)為上市首年交付5萬輛。
  • Android 14發(fā)布:首批適配機(jī)型公布

    5月11日消息,谷歌在今天凌晨舉行了I/O大會,本次發(fā)布會谷歌帶來了自家的AI語言模型PaLM 2、谷歌Pixel Fold折疊屏、谷歌Pixel 7a手機(jī),同時(shí)發(fā)布了Androi
  • 質(zhì)感不錯(cuò)!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風(fēng)扇版本

    據(jù)10 月 30 日外媒 TheVerge 消息報(bào)道,英特爾 Xe HPG Arc Alchemist 的正面實(shí)被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風(fēng)扇版本。另外,這款顯卡 PCB
Top