目次
キーボード イベント
プロジェクトでは画像プレビューを使用する必要がよくあります。
これは楽しい特殊効果テクニックです
使用するにはVue の印刷機能では、
は、
ホームページ ウェブフロントエンド Vue.js 【整理と共有】Vue開発に必須の操作スキル、ぜひ集めてください!

【整理と共有】Vue開発に必須の操作スキル、ぜひ集めてください!

Jul 21, 2022 pm 08:13 PM
vue

より多くのスキルを習得すると、プログラミングの効率が向上します。仕事をうまくやり遂げたい場合は、まずツールを磨く必要があります。この記事では、Vue の基本的な操作スキルをいくつか紹介しますので、お役に立てれば幸いです。

【整理と共有】Vue開発に必須の操作スキル、ぜひ集めてください!(学習ビデオ共有:

vue ビデオ チュートリアル

)

キーボード イベント

  • js では通常、イベントをバインドしてキーのコードを取得し、## を event #keyCode に渡します。 コードを取得するための属性
  • イベントをトリガーするために固定キーを実装する必要がある場合、常に判断する必要があり、実際には非常に面倒です
let button = document.querySelector('button')

button.onkeyup = function (e) {
    console.log(e.key)
    if (e.keyCode == 13) {
        console.log('我是回车键')
    }
}
ログイン後にコピー
  • vue は、いくつかの一般的に使用されるキーのエイリアスを提供します。イベントの後に応答エイリアスを追加するだけです。
  • vue 一般的なエイリアスは次のとおりです: up/上矢印下/下矢印左/左矢印右/右矢印スペース/スペースtab/改行esc/exitenter/キャリッジリターンdelete/削除
// 只有按下回车键时才会执行 send 方法
<input v-on:keyup.enter="send" type="text">
ログイン後にコピー
    Vue
  • でエイリアスを提供しないキーの場合は、元の key 値を使用してバインドできます。いわゆる key 値は ## です。 #event.key 取得値key
  • の値が 1 文字の場合はそのまま使用できますが、複数の単語で構成されるキャメルケース名の場合は、分割して
  • - 接続 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// 只有按下q键时才会执行send方法 &lt;input v-on:keyup.Q=&quot;send&quot; type=&quot;text&quot;&gt; // 只有按下capslock键时才会执行send方法 &lt;input v-on:keyup.caps-lock=&quot;send&quot; type=&quot;text&quot;&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>
  • システム修飾子の場合
ctrl
  • altshift これらの比較 複雑なキーの使用には、2 つの状況があります。これらのキーは、他のキーを押しながら組み合わせショートカット キーを形成することができるため、
  • トリガー イベントが次の場合
  • keydown
  • では、修飾キーを直接押してトリガーできます
  • トリガーイベントが keyup
  • の場合、修飾キーを押すときに他のキーを同時に押してから放します他のキーを押すと、イベントをトリガーできます。
  • <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// keydown事件时按下alt键时就会执行send方法 &lt;input v-on:keydown.Alt=&quot;send&quot; type=&quot;text&quot;&gt; // keyup事件时需要同时按下组合键才会执行send方法 &lt;input v-on:keyup.Alt.y=&quot;send&quot; type=&quot;text&quot;&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>
  • もちろん、
Vue.config.keyCodes を通じてキー エイリアス
  • をカスタマイズすることもできます。カスタム キー名 = キー コード
  • Define
  • <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// 只有按下回车键时才会执行send方法 &lt;input v-on:keydown.autofelix=&quot;send&quot; type=&quot;text&quot;&gt;      // 13是回车键的键码,将他的别名定义为autofelix Vue.config.keyCodes.autofelix=13</pre><div class="contentsignin">ログイン後にコピー</div></div>画像プレビュー

プロジェクトでは画像プレビューを使用する必要がよくあります。

viewerjs
    は非常に優れた画像プレビュー プラグインです
  • 機能サポートには、画像の拡大、縮小、回転、ドラッグ、切り替え、ストレッチなどが含まれます。
  • インストール
  • viewerjs
  • 拡張機能
  • <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">npm install viewerjs --save</pre><div class="contentsignin">ログイン後にコピー</div></div>
  • 導入と設定機能
    //引入
    import Vue from 'vue';
    import 'viewerjs/dist/viewer.css';
    import Viewer from 'v-viewer';
    
    //按需引入
    Vue.use(Viewer);
    
    Viewer.setDefaults({
        'inline': true,
        'button': true, //右上角按钮
        "navbar": true, //底部缩略图
        "title": true, //当前图片标题
        "toolbar": true, //底部工具栏
        "tooltip": true, //显示缩放百分比
        "movable": true, //是否可以移动
        "zoomable": true, //是否可以缩放
        "rotatable": true, //是否可旋转
        "scalable": true, //是否可翻转
        "transition": true, //使用 CSS3 过度
        "fullscreen": true, //播放时是否全屏
        "keyboard": true, //是否支持键盘
        "url": "data-source",
        ready: function (e) {
            console.log(e.type, '组件以初始化');
        },
        show: function (e) {
            console.log(e.type, '图片显示开始');
        },
        shown: function (e) {
            console.log(e.type, '图片显示结束');
        },
        hide: function (e) {
            console.log(e.type, '图片隐藏完成');
        },
        hidden: function (e) {
            console.log(e.type, '图片隐藏结束');
        },
        view: function (e) {
            console.log(e.type, '视图开始');
        },
        viewed: function (e) {
            console.log(e.type, '视图结束');
            // 索引为 1 的图片旋转20度
            if (e.detail.index === 1) {
                this.viewer.rotate(20);
            }
        },
        zoom: function (e) {
            console.log(e.type, '图片缩放开始');
        },
        zoomed: function (e) {
            console.log(e.type, '图片缩放结束');
        }
    })
    ログイン後にコピー
  • 画像プレビュー プラグインを使用する
      単一の画像を使用する
    <template>
      <div>
        <viewer>
          <img :src="cover" style="cursor: pointer;" height="80px">
        </viewer>
      </div>
    </template>
     
    <script>
    export default {
      data() {
        return {
          cover: "//www.autofelix.com/images/cover.png"
        }
      }
    }
    </script>
    ログイン後にコピー
  • 複数の画像を使用する
      <template>
        <div>
          <viewer :images="imgList">
            <img v-for="(imgSrc, index) in imgList" :key="index" :src="imgSrc" />
          </viewer>
        </div>
      </template>
       
      <script>
      export default {
        data() {
          return {
            imgList: [
              "//www.autofelix.com/images/pic_1.png",
              "//www.autofelix.com/images/pic_2.png",
              "//www.autofelix.com/images/pic_3.png",
              "//www.autofelix.com/images/pic_4.png",
              "//www.autofelix.com/images/pic_5.png"
            ]
          }
        }
      }
      </script>
      ログイン後にコピー
    • マーキー
    • これは楽しい特殊効果テクニックです

        たとえば、空港で人を迎えに行くときに、マーキー特殊効果を使用できます。
      • #マーキーの特殊効果は、実際には最初のテキストを削除して最後のテキストに追加することで、テキストの移動効果を形成します
      • <!DOCTYPE html>
        <html>
        
        <head>
            <meta charset="UTF-8">
            <title>跑马灯</title>
            <style type="text/css">
                #app {
                    padding: 20px;
                }
            </style>
        </head>
        
        <body>
            <div id="app">
                <button @click="run">应援</button>
                <button @click="stop">暂停</button>
                <h3>{{ msg }}</h3>
            </div>
        </body>
        <script src="https://cdn.jsdelivr.net/npm/vue@2.7.0/dist/vue.min.js"></script>
        <script>
            new Vue({
                el: "#app",
                data: {
                    msg: "飞兔小哥,飞兔小哥,我爱飞兔小哥~~~",
                    timer: null // 定时器
                },
                methods: {
                    run() {
                        // 如果timer已经赋值就返回
                        if (this.timer) return;
        
                        this.timer = setInterval(() => {
                            // msg分割为数组
                            var arr = this.msg.split('');
                            // shift删除并返回删除的那个,push添加到最后
                            // 把数组第一个元素放入到最后面
                            arr.push(arr.shift());
                            // arr.join('')吧数组连接为字符串复制给msg
                            this.msg = arr.join('');
                        }, 100)
                    },
                    stop() {
                        //清除定时器
                        clearInterval(this.timer);
                        //清除定时器之后,需要重新将定时器置为null
                        this.timer = null;
                    }
                }
            })
        </script>
        
        </html>
        ログイン後にコピー
      • カウントダウン
      カウントダウン手法には多くの用途があります

      たとえば、急ぎで購入する商品が多い場合、ユーザーに思い出させるためにカウントダウンが必要です。ラッシュを開始する時間
      • 実際には 1 秒おきです。時間を再計算して
      • DOM
      • <!DOCTYPE html>
        <html>
        
        <head>
            <meta charset="UTF-8">
            <title>倒计时</title>
        </head>
        
        <body>
            <div id="app">
                <div>抢购开始时间:{{count}}</div>
            </div>
        </body>
        <script src="https://cdn.jsdelivr.net/npm/vue@2.7.0/dist/vue.min.js"></script>
        <script>
            new Vue({
                el: "#app",
                data() {
                    return {
                        count: '', //倒计时
                        seconds: 864000 // 10天的秒数
                    }
                },
                mounted() {
                    this.Time() //调用定时器
                },
                methods: {
                    // 天 时 分 秒 格式化函数
                    countDown() {
                        let d = parseInt(this.seconds / (24 * 60 * 60))
                        d = d < 10 ? "0" + d : d
                        let h = parseInt(this.seconds / (60 * 60) % 24);
                        h = h < 10 ? "0" + h : h
                        let m = parseInt(this.seconds / 60 % 60);
                        m = m < 10 ? "0" + m : m
                        let s = parseInt(this.seconds % 60);
                        s = s < 10 ? "0" + s : s
                        this.count = d + &#39;天&#39; + h + &#39;时&#39; + m + &#39;分&#39; + s + &#39;秒&#39;
                    },
                    //定时器没过1秒参数减1
                    Time() {
                        setInterval(() => {
                            this.seconds -= 1
                            this.countDown()
                        }, 1000)
                    },
                }
            })
        </script>
        
        </html>
        ログイン後にコピー
        カスタマイズされた右クリックに割り当てます。メニュー
      プロジェクトでは、ブラウザのデフォルトの右クリック オプションではなく、マウスの右ボタンで表示されるオプションをカスタマイズする必要がある場合があります。

      右クリック オプションの実装方法
        Vue
      • では、クリック メニューは実際には非常に簡単です。
      • vue-contextmenujs を使用するだけです。
      • プラグインをインストールできます。vue-contextmenujs プラグイン
      • npm install vue-contextmenujs
        ログイン後にコピー
        はじめに
      //引入
      import Vue from 'vue';
      import Contextmenu from "vue-contextmenujs"
      
      Vue.use(Contextmenu);
      ログイン後にコピー
      • 使用方法
      使用できます
      • オプションにアイコンを追加できます
      • 使用できますstyle ラベルのカスタマイズ オプションのスタイル
      • disabled を使用できます 属性をクリックしてオプションを無効にできます
      • divided:true を使用できます オプションの下線を設定します
      • children# を使用できます## サブオプションを設定します
      <style>
          .custom-class .menu_item__available:hover,
          .custom-class .menu_item_expand {
              background: lightblue !important;
              color: #e65a65 !important;
          }
      </style>
      
      
      <template>
          <div style="width:100vw;height:100vh" @contextmenu.prevent="onContextmenu"></div>
      </template>
      
      <script>
          import Vue from 'vue'
          import Contextmenu from "vue-contextmenujs"
          Vue.use(Contextmenu);
      
          export default {
              methods: {
                  onContextmenu(event) {
                      this.$contextmenu({
                          items: [
                              {
                                  label: "返回",
                                  onClick: () => {
                                      // 添加点击事件后的自定义逻辑
                                  }
                              },
                              { label: "前进", disabled: true },
                              { label: "重载", divided: true, icon: "el-icon-refresh" },
                              { label: "打印", icon: "el-icon-printer" },
                              {
                                  label: "翻译",
                                  divided: true,
                                  minWidth: 0,
                                  children: [{ label: "翻译成中文" }, { label: "翻译成英文" }]
                              },
                              {
                                  label: "截图",
                                  minWidth: 0,
                                  children: [
                                      {
                                          label: "截取部分",
                                          onClick: () => {
                                              // 添加点击事件后的自定义逻辑
                                          }
                                      },
                                      { label: "截取全屏" }
                                  ]
                              }
                          ],
                          event, // 鼠标事件信息
                          customClass: "custom-class", // 自定义菜单 class
                          zIndex: 3, // 菜单样式 z-index
                          minWidth: 230 // 主菜单最小宽度
                      });
                      return false;
                  }
              }
          };
      </script>
      ログイン後にコピー
    • 印刷機能
    • Web ページの印刷機能をサポートします。これも多くのプロジェクトで一般的です

      使用するにはVue の印刷機能では、

      vue-print-nb
        プラグイン
      • インストール
      • vue-print-nb プラグイン
      npm install vue-print-nb --save
      ログイン後にコピー
    • 印刷サービスの紹介
    • import Vue from 'vue'
      import Print from 'vue-print-nb'
      Vue.use(Print);
      ログイン後にコピー
        使用
      v-print
        コマンドを使用して印刷機能を開始します
      <div id="printStart">
          <p>红酥手,黄縢酒,满城春色宫墙柳。</p>
          <p>东风恶,欢情薄。</p>
          <p>一怀愁绪,几年离索。</p>
          <p>错、错、错。</p>
          <p>春如旧,人空瘦,泪痕红浥鲛绡透。</p>
          <p>桃花落,闲池阁。</p>
          <p>山盟虽在,锦书难托。</p>
          <p>莫、莫、莫!</p>
      </div>
      <button v-print="&#39;#printStart&#39;">打印</button>
      ログイン後にコピー
    • JSONP request
    • jsonp

      は、

      クロスドメインの問題を解決するための主な方法の 1 つです。
      • vue
      • インストール
      • jsonp拡張機能<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">npm install vue-jsonp --save-dev</pre><div class="contentsignin">ログイン後にコピー</div></div>##でjsonp
      • を使用することは実際には非常に重要です。
      • #登録サービス
        // 在vue2中注册服务
        import Vue from 'vue'
        import VueJsonp from 'vue-jsonp'
        Vue.use(VueJsonp)
        
        // 在vue3中注册服务
        import { createApp } from 'vue'
        import App from './App.vue'
        import VueJsonp from 'vue-jsonp'
        createApp(App).use(VueJsonp).mount('#app')
        ログイン後にコピー
      使用方法
      • jsonp
      を使用してデータをリクエストした後のコールバックは
        then
      • カスタム
      • callbackName
      • を実行する代わりに、window オブジェクト
      • <script>
        export default {
          data() {...},
          created() {
            this.getUserInfo()
          },
          mounted() {
            window.jsonpCallback = (data) => {
                // 返回后回调
                console.log(data)
            }
          },
          methods: {
            getUserInfo() {
             this.$jsonp(this.url, {
              callbackQuery: "callbackParam",
              callbackName: "jsonpCallback"
             })
              .then((json) => {
                  // 返回的jsonp数据不会放这里,而是在 window.jsonpCallback
                  console.log(json)
              })  
            }
          }
         }
        </script>
        ログイン後にコピー
        ## にマウントする必要があります。 #【関連ビデオチュートリアルの推奨事項: vuejs エントリーのチュートリアル Web フロントエンドのエントリー ]

      以上が【整理と共有】Vue開発に必須の操作スキル、ぜひ集めてください!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

      このウェブサイトの声明
      この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

      ホットAIツール

      Undresser.AI Undress

      Undresser.AI Undress

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

      AI Clothes Remover

      AI Clothes Remover

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

      Undress AI Tool

      Undress AI Tool

      脱衣画像を無料で

      Clothoff.io

      Clothoff.io

      AI衣類リムーバー

      Video Face Swap

      Video Face Swap

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

      ホットツール

      メモ帳++7.3.1

      メモ帳++7.3.1

      使いやすく無料のコードエディター

      SublimeText3 中国語版

      SublimeText3 中国語版

      中国語版、とても使いやすい

      ゼンドスタジオ 13.0.1

      ゼンドスタジオ 13.0.1

      強力な PHP 統合開発環境

      ドリームウィーバー CS6

      ドリームウィーバー CS6

      ビジュアル Web 開発ツール

      SublimeText3 Mac版

      SublimeText3 Mac版

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

      VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

      vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

      VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

      HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

      vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

      vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

      VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

      Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

      Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

      VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

      Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

      vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

      VUEトラバーサルの使用方法 VUEトラバーサルの使用方法 Apr 07, 2025 pm 11:48 PM

      Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

      Vueにタグをジャンプする方法 Vueにタグをジャンプする方法 Apr 08, 2025 am 09:24 AM

      VUEでタグのジャンプを実装する方法には、HTMLテンプレートでAタグを使用してHREF属性を指定する方法が含まれます。 VUEルーティングのルーターリンクコンポーネントを使用します。 JavaScriptでこれを使用します。$ router.push()メソッド。パラメーターはクエリパラメーターに渡すことができ、ルートは動的ジャンプのルーターオプションで構成されています。

      See all articles