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の監視方法のケースの詳細な説明

Vueでの監視方法時計知らせ名前: 監視する属性に同じ名前を付ける必要があります。 1. 機能Vue...

MySQL にテキストと画像を保存する方法

Oracle の大きなテキスト データ型 Clob 長いテキスト型 (MySQL ではサポートされて...

サーバー間のファイル バックアップ ソリューション、サーバー ファイルを別のサーバーに自動的にバックアップする方法は?

多くの組織ではファイル サーバーをバックアップする必要があり、あるサーバーから別のファイル サーバー...

setup+ref+reactive は vue3 の応答性を実装します

セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

CentOS7 64ビットインストールmysqlグラフィックチュートリアル

MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...

クリエイティブな会社概要ウェブページデザイン

ユニークな「About」ページ自分を他の人たちと差別化する素晴らしい方法は、本当にユニークな自己紹介...

Node.js+expressメッセージボード機能実装例

目次メッセージボード必要なライブラリオープンソースプロジェクトプロジェクト構造メッセージボードnod...

Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析

Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...

【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

Vue+webrtc (Tencent Cloud) ライブブロードキャスト機能の実装実践

目次1. 生放送効果2. ライブストリーミングを開始する手順2.1 Tencent Web(高速ライ...

Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

目次1. 三項演算子の判定2. 動的に設定されるクラス3. 方法判定4. 配列バインディング5. e...

WIN2008 サーバーのコマンド ラインを使用して IIS7 コンポーネントをインストールおよびアンインストールする方法

注意: .NET FrameWork はコア モードで実行できないため、コア インストール モードの...

jQueryはフォーム検証を実装する

jQueryを使用してフォーム検証を実装します。参考までに、具体的な内容は次のとおりです。登録.ht...