序文この記事では、Vueプロジェクトでよく使用されるツール関数をいくつか記録します。ツール関数を一元管理するために、これらの関数はsrcディレクトリの下のutilsフォルダに統一して配置されています。 1. カスタムフォーカスコマンド1. 方法1マウントされたサイクルでは、ref+querySelectorが入力タグを取得し、focus()を呼び出します。 2. 方法2カスタムディレクティブ(ローカル)ディレクティブ:fofo(挿入)、タグで定義および使用される、v-fofo 3. 方法3グローバルカスタム指示、推奨 (再利用性が高い)。 main.js にインポートして使用するだけです。 コードは次のとおりです(例): 'vue' から Vue をインポートします Vue.directive("fofo",{ 挿入(el) { // 取得した要素の名前を決定します if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') { el.フォーカス() } それ以外 { // 内部レイヤーを取得しようとします el.querySelector('input').focus() } } }) 2. 入力ボックスの手ぶれ補正1. 需要ユーザーが入力ボックスにコンテンツを入力すると、ユーザーの入力コンテンツを取得してサーバーにフィードバックするために、入力ボックスの入力イベントを監視する必要があります。ただし、入力ボックスの値が変更されると、すぐに Ajax リクエストが送信され、不要な Ajax リクエストが発生します。ユーザーが入力を止めて一定時間待機すると、リクエストはバックグラウンドに送信され、不要なリクエストを減らすことができます。 2. アイデアユーザーが入力を開始すると、タイマーが開始されます。タイマーが終了した後、ユーザーが再度コンテンツを入力しない場合は、Ajax リクエストがバックグラウンドに送信されます。指定された時間内にユーザーが再度入力すると、以前のタイマーはクリアされ、タイマーが再開されます。 3. コードの実装実装原理を理解した後、コードを抽出できることを示す例を次に示します。 コードは次のとおりです(例): <テンプレート> <div> <input type="text" v-model="kw" @input="inputFn"/> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ データ(){ 戻る { :''、 タイマー:null } }, 方法:{ 入力関数(){ タイムアウトをクリアします(this.timer) this.timer = setTimeout(() => { if(this.kw === '') 戻り値 // ここで、ユーザーが入力したキーワードに応じてバックグラウンドで返される検索関連リストを取得するための Ajax リクエストを送信できます。console.log(this.kw) }, 1000) // ユーザーが 1 秒間コンテンツの入力を停止すると、タイマー内のロジックが実行されます。ユーザーが 1 秒以内に再度コンテンツを入力すると、タイマーが再開されます。 } } } </スクリプト> 3. キーワードの強調表示1. 需要ユーザーが入力ボックスでキーワードを検索すると、表示される連想リスト内のキーワードの色が変わり、ユーザーはより直感的に目的の結果を確認できます。 2. アイデアlightFn関数をカプセル化します。この関数は2つの引数を受け取ります。1つ目は変更する文字列、2つ目は一致させるキーワードです。 3. コードデモンストレーションコードは次のとおりです(例): エクスポートconst lightFn = (str, targetStr) => { // 大文字と小文字を区別せず、グローバルに一致させる const reg = new RegExp(targetStr, 'ig') str.replace(reg, match => { を返す `<span style="color:red">${match}</span>` を返します }) } IV. Excelテーブルに保存された時間をフォーマットする1. 需要インポートする Excel テーブルに保存されている時間を、Excel 形式から保存に使用する形式に変換します。 2. コードデモンストレーションこのコードはLan Yuxiから引用したものです。この偉大な人に感謝して、ここに集めておきます~ コードは次のとおりです(例): エクスポート関数formatExcelDate(numb, format = '/') { const time = new Date((数値 - 25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000) 時間.setYear(時間.getFullYear()) 定数年 = time.getFullYear() + '' 定数月 = time.getMonth() + 1 + '' 定数日付 = time.getDate() + '' if (format && format.length === 1) { 年 + 形式 + 月 + 形式 + 日付を返す } 年 + (月 < 10 ? '0' + 月 : 月) + (日 < 10 ? '0' + 日付 : 日) を返します } 要約するVue プロジェクトでよく使われるツール機能に関するこの記事はこれで終わりです。Vue でよく使われるツール機能の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nginx/Httpd リバース プロキシ Tomcat 設定チュートリアル
>>: Linux/Docker で System.Drawing.Common を使用する
興味深い発見:合計 1000 件のレコードを含むテーブルがあります。クエリ ステートメントは次のよう...
序文デモでは古いバージョンのブラウザのグラデーションが実装されています[IE9-]。 IE9 より前...
結果: 実装コード: html <div class="buttons"&...
目次1. 使用2. メッセージポップアップウィンドウが繰り返し表示される問題を解決する1. 使用Vu...
目次序文1. コードによって設定されたデータベース名またはパスワードがローカルデータベースと一致して...
ミニプログラムページ間で値を渡すみなさんこんばんは。こんばんはと言うのは、これを夜に書いたからです。...
クリックして画像を切り替えることは、日常生活で非常によく行われることです。今日の練習は、画像を切り替...
コンピュータシステム: win7この記事は主に写真に基づいており、多くの写真が含まれていますCent...
目次1. ルーティング関連オブジェクト2. ルーティングオブジェクトの場所3. ルーティング構成4....
序文ページを作っていく上で、ページレイアウトに関する内容に遭遇することが多く、面接でも聞かれることも...
目次1. MySQLトリガーの作成: 1. MySQLトリガー作成構文: 2. MySQL作成構文の...
何人かの学生は、マスターとスレーブの間の不一致の問題に遭遇したと述べました。一般的な状況としては、m...
目次1. MySQLレプリケーションプロセス2. MySQLの遅延問題の分析3. プロモーション期間...
今日は、ローカルの Docker プロジェクト イメージを dockerhub に公開する方法を紹介...
MySQL のデータはディスクに書き込む必要があることは誰もが知っています。ディスクの読み取りと書き...