Vue と Canvas: 手書き署名およびジェスチャ認識関数を実装する方法
はじめに:
手書き署名およびジェスチャ認識関数は、最新のアプリケーションでますます一般的になってきており、ユーザーにさらに多くの機能を提供できます。直感的で自然なインタラクションモード。人気のあるフロントエンド フレームワークである Vue.js は、Canvas 要素を使用してこれら 2 つの機能を実現できます。この記事では、Vue.js と Canvas 要素を使用して手書き署名とジェスチャ認識機能を実装する方法と、対応するコード例を紹介します。
1. 手書き署名機能の実装
手書き署名機能を実装するには、まず Canvas 要素を含む Vue コンポーネントを作成する必要があります。このコンポーネントでは、ユーザーがCanvas上に署名を描画する機能を実装します。
<template> <div> <h1 id="手写签名">手写签名</h1> <canvas ref="canvas" @mousedown="startDrawing" @mousemove="drawing" @mouseup="stopDrawing"></canvas> <button @click="clearCanvas">清除</button> <button @click="saveSignature">保存</button> </div> </template> <script> export default { data() { return { isDrawing: false, signatureData: null } }, methods: { startDrawing(event) { this.isDrawing = true; const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(event.pageX - canvas.offsetLeft, event.pageY - canvas.offsetTop); }, drawing(event) { if (!this.isDrawing) return; const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.lineTo(event.pageX - canvas.offsetLeft, event.pageY - canvas.offsetTop); ctx.stroke(); }, stopDrawing() { this.isDrawing = false; }, clearCanvas() { const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.clearRect(0, 0, canvas.width, canvas.height); }, saveSignature() { const canvas = this.$refs.canvas; this.signatureData = canvas.toDataURL(); } } } </script> <style scoped> canvas { border: 1px solid black; } </style>
このコードでは、まず、ユーザーが署名データを描画および保存しているかどうかを記録するために、isDrawing と SignatureData という 2 つのデータ属性を定義します。 startDrawing メソッドでは、マウス プレス イベントをリッスンし、Canvas 要素のコンテキストを取得して、パスの描画を開始します。描画メソッドでは、マウスを放すまでリアルタイムで描画パスを更新します。 stopDrawing メソッドでは、isDrawing を false に設定して、パスの描画を停止します。 clearCanvas メソッドは、Canvas 上のコンテンツをクリアするために使用されます。 saveSignature メソッドは、Canvas の内容を Base64 でエンコードされたデータに変換し、signatureData に保存します。
2. ジェスチャー認識機能の実装
ジェスチャー認識機能を実装するには、Hammer.js などのサードパーティ製ライブラリを使用してタッチイベントを処理し、Canvas と連携してジェスチャーを実現します。描画と認識。
まず、プロジェクトに Hammer.js ライブラリをインストールします:
npm install hammerjs --save
次に、Hammer.js ライブラリを Vue コンポーネントにインポートし、それを使用してジェスチャ イベントを処理します:
<template> <div> <h1 id="手势识别">手势识别</h1> <canvas ref="canvas"></canvas> <button @click="recognizeGesture">识别</button> </div> </template> <script> import Hammer from 'hammerjs'; export default { mounted() { const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); const mc = new Hammer(canvas); mc.get('swipe').set({ direction: Hammer.DIRECTION_ALL }); mc.on('swiperight swipeleft swipeup swipedown', function (event) { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.fillText(event.type, canvas.width / 2, canvas.height / 2); }); } } </script> <style scoped> canvas { border: 1px solid black; } </style>
このコードでは、最初に Hammer.js ライブラリをインポートし、Vue コンポーネントのマウントされたフック関数に Hammer オブジェクトを作成し、認識する必要があるジェスチャ タイプを指定します。次に、mc.on メソッドを使用してジェスチャ イベントをリッスンし、対応するコールバック関数で Canvas 上のコンテンツをクリアして、ジェスチャ タイプを描画します。
結論:
Vue.js と Canvas 要素を組み合わせることで、手書き署名やジェスチャ認識機能を簡単に実装できます。手書き署名機能は、より直感的で自然な署名方法をユーザーに提供し、ジェスチャー認識機能は、より自由で直感的な対話方法をユーザーに提供します。この記事がお役に立てば幸いです、読んでいただきありがとうございます!
参考資料:
- Vue 公式ドキュメント: https://vuejs.org/
- Canvas 公式ドキュメント: https://developer.mozilla.org/ en-US/docs/Web/API/Canvas_API
- Hammer.js 公式ドキュメント: https://hammerjs.github.io/
以上がVue と Canvas: 手書き署名とジェスチャ認識機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

henthevuue.jsvirtualdomdetectsachange、itupdatesthevirtualdom、diffsit、およびAppliesminimalchangestothestotoreldom。

Vue.jsのVirtualdomは、実際のDomの鏡であり、正確ではありません。 1.作成と更新:Vue.jsは、コンポーネントの定義に基づいてVirtualdomツリーを作成し、まず状態が変更されたときにVirtualDomを更新します。 2。違いとパッチング:DIFF操作による古い仮想ドームと新しい仮想ドミーの比較、そして最小変更のみを実際のDOMに適用します。 3。効率:VirtualDomは、バッチの更新を許可し、直接DOM操作を削減し、レンダリングプロセスを最適化します。 VirtualDomは、Vue.jsがUIの更新を最適化するための戦略的ツールです。

Vue.jsとReactはそれぞれ、スケーラビリティと保守性に独自の利点があります。 1)Vue.jsは使いやすく、小規模プロジェクトに適しています。構成APIは、大規模なプロジェクトの保守性を向上させます。 2)Reactは、フックと仮想DOMがパフォーマンスと保守性を向上させる大規模で複雑なプロジェクトに適していますが、学習曲線は急です。

Vue.jsとReactの将来の傾向と予測は次のとおりです。1)Vue.jsはエンタープライズレベルのアプリケーションで広く使用され、サーバー側のレンダリングおよび静的サイト生成でブレークスルーを行いました。 2)Reactは、サーバーコンポーネントとデータ収集で革新され、並行性モデルをさらに最適化します。

Netflixのフロントエンドテクノロジースタックは、主にReactとReduxに基づいています。 1.反応は、高性能のシングルページアプリケーションを構築するために使用され、コンポーネント開発を通じてコードの再利用性とメンテナンスを改善します。 2。国家管理には、状態の変更が予測可能で追跡可能であることを確認するために、国家管理に使用されます。 3.ツールチェーンには、コードの品質とパフォーマンスを確保するために、Webpack、Babel、Jest、および酵素が含まれています。 4.パフォーマンスの最適化は、ユーザーエクスペリエンスを向上させるためのコードセグメンテーション、怠zyな読み込み、サーバー側のレンダリングを通じて達成されます。

Vue.jsは、非常にインタラクティブなユーザーインターフェイスを構築するのに適したプログレッシブフレームワークです。そのコア機能には、レスポンシブシステム、コンポーネント開発、ルーティング管理が含まれます。 1)レスポンシブシステムは、Object.DefinePropertyまたはプロキシを介したデータ監視を実現し、インターフェイスを自動的に更新します。 2)コンポーネント開発により、インターフェイスを再利用可能なモジュールに分割できます。 3)Vuerouterは、ユーザーエクスペリエンスを向上させるための単一ページアプリケーションをサポートしています。

vue.jsの主な欠点には次のものが含まれます。1。エコシステムは比較的新しいものであり、サードパーティのライブラリとツールは他のフレームワークほど豊富ではありません。 2。複雑な関数では、学習曲線が急になります。 3.コミュニティのサポートとリソースは、反応や角度ほど広範ではありません。 4.パフォーマンスの問題は、大規模なアプリケーションで発生する可能性があります。 5。バージョンのアップグレードと互換性の課題が大きくなります。

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1.反応のコンポーネント開発と仮想DOMメカニズムは、パフォーマンスと開発効率を向上させます。 2。WebpackとBabelを使用して、コードの構築と展開を最適化します。 3.パフォーマンスの最適化のために、コードセグメンテーション、サーバー側のレンダリング、キャッシュ戦略を使用します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
