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

當前位置:首頁 > 科技  > 軟件

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

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

dId28資訊網——每日最新資訊28at.com

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

dId28資訊網——每日最新資訊28at.com

我們可以使用它輕松的實現電子簽名, 比如說常用的合同簽字, 文稿簽名, 藝術簽名等, 并支持一鍵將簽名保存。dId28資訊網——每日最新資訊28at.com

基本使用

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

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

然后一個簡單的使用如下:dId28資訊網——每日最新資訊28at.com

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

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

dId28資訊網——每日最新資訊28at.com

比如我可以調整線條的顏色:dId28資訊網——每日最新資訊28at.com

dId28資訊網——每日最新資訊28at.com

調整線條寬度:dId28資訊網——每日最新資訊28at.com

dId28資訊網——每日最新資訊28at.com

在具體使用的時候靈活配置即可, 我還提供了業務中經常用到的監聽事件, 方便使用者靈活調用:dId28資訊網——每日最新資訊28at.com

  • onSave 保存時的回調。
  • onClear 當畫布清空時的回調。
  • onDrawEnd 每次繪制結束時的回調。

實現思路

按照筆者之前的習慣, 在設計組件之前都會先明確組件的設計需求, 然后根據健壯組件的設計原則來落地組件, 這里給大家分享一下我總結的幾條組件設計經驗:dId28資訊網——每日最新資訊28at.com

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

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

dId28資訊網——每日最新資訊28at.com

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

這些都是組件第一個階段可以想到的配置點, 也是能應對第一階段業務需求的功能, 所以有了第一版的組件需求設計:dId28資訊網——每日最新資訊28at.com

dId28資訊網——每日最新資訊28at.com

接下來就需要用 typescript 來規范組件的輸入和輸出了. 具體定義如下:dId28資訊網——每日最新資訊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   設置線條兩端圓角    * @default       'round'   */   lineCap?: string;   /**    * @description   線條交匯處圓角    * @default       'round'   */   lineJoin?: string;   /**    * @description   畫布背景顏色    * @default       'transparent'   */   bgColor?: string;   /**    * @description   true   */   showBtn?: boolean;   /**   * @description   當保存時的回調, blob為生成的圖片bob   * @default       -   */   onSave?: (blob: Blob) => void;  /**   * @description   當畫布清空時的回調, 參數為畫布的上下文對象,可以直接使用canvas的api   * @default       -   */   onClear?: (canvasContext: CanvasRenderingContext2D) => void;   /**   * @description   當畫布結束時的回調   * @default       -   */   onDrawEnd?: (canvas: HTMLCanvasElement) => void;}

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

dId28資訊網——每日最新資訊28at.com

以上是組件的基本屬性定義和代碼結構, 畫圖部分涉及到 canvas 的比較細節的部分。dId28資訊網——每日最新資訊28at.com

具體實現的源碼我已經上傳到github, 感興趣的朋友大家可以參考一下。dId28資訊網——每日最新資訊28at.com

github: https://github.com/MrXujiang/react-signdId28資訊網——每日最新資訊28at.com

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

react-sign2 官方演示文檔dId28資訊網——每日最新資訊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開源推薦! 一款開箱即用的電子簽名組

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C++讀取文件和寫入文件內容實例詳解

下一篇: 數據結構分類以及數據結構特點、優缺點

標簽:
  • 熱門焦點
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • 分布式系統中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統的小伙伴們來說,一提起分布式系統,就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • 華為開發者大會2023日程公開:開設鴻蒙HarmonyOS 4體驗區

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開發者大會 2023 的詳細日程。整場大會將于 8 月 4 日-6 日之間舉行,屆時將發布最新一代鴻蒙 H
  • 三星折疊屏手機去年銷售近1000萬臺 今年目標定為1500萬

    7月29日消息,三星率先發力可折疊手機市場,在全球市場已經取得了非常亮眼的成績,接下來會進一步鞏固和擴大這一優勢。三星在推出Galaxy Z Flip5和Galax
  • 回歸OPPO兩年,一加贏了銷量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創佳績。今年618期間,一加手機全渠道銷量同比增長362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • 電博會與軟博會實現"線下+云端"的雙線融合

    在本次“電博會”與“軟博會”雙展會利好條件的加持下,既可以發揮展會拉動人流、信息流、資金流實現快速交互流動的作用,繼而推動區域經濟良性發展;又可以聚
Top 主站蜘蛛池模板: 临清市| 高清| 闽侯县| 海晏县| 蒲江县| 漠河县| 白山市| 永春县| 新营市| 龙陵县| 鞍山市| 浪卡子县| 庆云县| 桂阳县| 土默特左旗| 营口市| 淄博市| 贵定县| 客服| 遵义市| 民勤县| 视频| 右玉县| 尤溪县| 屏东市| 固原市| 黎平县| 巫溪县| 德昌县| 洱源县| 垫江县| 永修县| 偏关县| 昭苏县| 绥棱县| 巴中市| 邢台县| 陆丰市| 达日县| 顺昌县| 夹江县|