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 の接続制限設定の詳細な説明

推薦する

Vue.js アプリケーションのパフォーマンス最適化分析 + ソリューション

目次1. はじめに2. Vue JS のパフォーマンス最適化が必要な理由は何ですか? 3. Vueの...

MySQL 実行ステータスの表示と分析

MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlist...

HTML+CSS マージテーブル境界線サンプルコード

table タグと td タグに境界線を追加すると、デフォルトでは次のように二重境界線が使用されます...

vue3 における vuex と pinia の落とし穴

目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...

CSS の優先順位に関する詳細な紹介

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...

Tomcatの起動が遅い問題を素早く解決、超簡単

今日、私はクラスメートが問題を解決するのを手伝いました - Tomcat の起動が非常に遅く、約 5...

Dockerとiptablesとブリッジモードのネットワーク分離と通信操作の実装

Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...

JS はデータ URL をどのように理解するのでしょうか?

目次概要データ URL の使用を開始するデータURL構文複数言語の文字列のBase64エンコードとデ...

JavaScript配列の重複排除のいくつかの方法についての詳細な説明

目次1.重複排除を設定する2. 重複を削除するには、2 回の for ループを使用します。 3. i...

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

HTMLの基本概念の詳細な説明

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 •HTML...

フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)

昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...

URLエスケープエンコーディングの特殊文字に基づいて

目次URL 内の特殊文字URL 特殊文字エスケープ、URL 内の一部の文字には特別な意味があり、基本...

Vue2.x における双方向バインディングの原理と実装

目次1. 実施プロセス2. オブザーバーを表示する3. ウォッチャーを実装する4. コンパイルを実装...

Vueコンポーネント通信方法事例まとめ

目次1. 親コンポーネントが子コンポーネントに値を渡す(props) 2. サブコンポーネントは親コ...