Vueは秒殺しのカウントダウンコンポーネントを実装する

Vueは秒殺しのカウントダウンコンポーネントを実装する

この記事では、2番目のキルカウントダウンコンポーネントを実装するためのVueの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

以下は、Vueを使用した2回目のキルのカウントダウンコンポーネントです。

開発アイデア

1. サーバーに現時点でのサーバー時刻を取得するように要求します(サーバー時刻に基づく)
2. ユーザーの現在のコンピューターの時刻を取得し、それをサーバーの時刻と比較して時間差を取得します。最終時間は、現在のコンピュータの時刻から時間差(現在のサーバー時刻として定義)を引いた値です。
3. フラッシュセールの開始時間を設定する
4. フラッシュセールの時間と現在のサーバー時間を比較して時間差を取得します(合計X秒)
5. X 秒に基づいて、フラッシュ セールが開始されるまでの日数、時間数、分数、秒数を計算します。

コードの実装

次のコードは手順 4 と 5 のみを示しています。

コンポーネント CountDown.vue

<テンプレート>
  <div>
      <input type="datetime-local" :min="currentTime" placeholder="フラッシュセールの開始時刻を入力してください" v-model="startTime">
      <button @click="submit">計測を開始</button>
  </div>
  <div>
      <h1>{{ カウントダウンタイム }}</h1>
  </div>
</テンプレート>

<スクリプト>
タイマーを null にします。
let tipTextPrefix = 'フラッシュセール開始までの残り時間: ';
「moment」から moment をインポートします。
エクスポートデフォルト{
    名前: 'カウントダウン',
    データ() { 戻り値 {
        currentTime: moment().format('YYYY-MM-DDTHH:mm'), // 手順 1 ~ 3 で計算したサーバー時間を使用してください startTime: moment().format('YYYY-MM-DDTHH:mm'),
        countDownTime: tipTextPrefix + '0日0時間0分0秒'
    }},
    メソッド: {
        送信: 関数() {
            _this は定数です。
            タイマーの間隔をクリアします。
            タイマー = setInterval(() => {
                _this.countDownTime = _this.countDown();
            }, 1000);
        },
        カウントダウン: 関数() {
            コンソールにログ出力します。
            const seconds = moment(this.startTime).diff(新しい日付、'seconds');
            秒数 <= 0 の場合
                タイマーの間隔をクリアします。
                「第2弾セールが始まりました」を返します。
            }
            const 秒 = 秒%60;
            const minutes = (秒-秒) / 60;
            定数分 = 分%60;
            const hours = (分-分) / 60;
            定数時間 = 時間%24;
            const day = (時間-時間) / 24;
            const res = tipTextPrefix + day + '日' + hour + '時' + minute + '分' + second + '秒';
            res を返します。
        }
    },
}
</スクリプト>

<スタイル>

</スタイル>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する
  • Vue プロジェクトを開始するときに発生するエラー「GET /service を取得できません」の解決方法
  • Vue プロジェクトの起動ポート番号を変更する方法
  • webpack が vue プロジェクトをパッケージ化した後に生成された dist ファイルの実行を開始する方法の詳細な説明
  • Vueプロジェクトを開始するためのVSCode設定の詳細な説明
  • webpack+vue+express(hot) のホットスタートデバッグのためのシンプルな設定方法
  • vue-cli がローカルサービス LAN にアクセスできない理由の分析
  • vue express 開始データサービスの詳細な説明
  • Vueは商品詳細ページの商品タブ機能を実装します
  • Vue2.0/3.0双方向データバインディングの実装原理の詳細説明
  • Vue.js プロジェクトの開始方法

<<:  MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

>>:  ネットワークセグメント内の IP アドレスに対する Nginx の接続制限設定の詳細な説明

推薦する

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

ショッピングカートの計算を実現する js メソッド

この記事の例では、ショッピングカートの計算を実装するためのjsの具体的なコードを参考までに共有してい...

Vue の foreach 配列と js の traversal 配列の書き方の説明

Vue foreach配列を記述し、jsで配列をトラバースする方法シナリオVueでAxiosを使用し...

SQL インジェクションの詳細

1. SQL インジェクションとは何ですか? SQL インジェクションは、入力パラメータに SQL ...

Nginx 書き換えジャンプの適用シナリオの詳細な説明

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

MySQL の日付と時刻関数の概要 (MySQL 5.X)

1. MySQLは現在の日付と時刻を取得する関数1.1 現在の日付 + 時刻 (日付 + 時刻) ...

JavaScript 文字列オブジェクトメソッド

目次文字列オブジェクトのメソッド方法 1: indexOf() (推奨)方法 2: search()...

CSS3の新しい背景プロパティの詳細な説明

これまで、CSS の背景の属性には、color、image、repeat、attachment、po...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...

MySQLの手順を完全に削除する

目次1. まずMySQLサーバーを停止する2. MySQLサーバーをアンインストールする3. MyS...

CenOS6.7 mysql 8.0.22 のインストールと設定方法のグラフィックチュートリアル

CenOS6.7 は MySQL8.0.22 (推奨コレクション) をインストールします1. MyS...

XHTML言語のデフォルトCSSスタイル

html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...

VueはEChartsを使用して折れ線グラフと円グラフを実装します

バックエンド管理プロジェクトを開発する場合、バックエンドのユーザーデータをカウントし、折れ線グラフや...

MySQL メモリテーブルと一時テーブルの使用方法の詳細な説明

MySQL メモリ テーブルと一時テーブルの使用メモリテーブル: セッション 1 $ mysql -...

Mac で MySQL バージョン 5.6 のパスワードを設定する方法

MySQLはインストール時に設定できますが、それより低いバージョンは設定できないようで、インストール...