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

推薦する

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

LinuxにPython 3.6をインストールして落とし穴を避ける

Python 3のインストール1. 依存環境をインストールするPython3 はインストール プロセ...

HTML で点線の境界線を設定する方法

CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...

Windows での MySQL 5.7.10 のインストールと設定のチュートリアル

MySQL は、ユーザーごとに 2 つの異なるバージョンを提供します。 MySQL コミュニティ サ...

Linux ベースの MySQL マスター スレーブ構成の全プロセスを記録する

mysql マスタースレーブ構成1. 準備ホスト: 192.168.244.128スレーブ: 192...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

Node.jsはMySQLデータベースの実戦記録を追加、削除、変更、チェックします

目次プロジェクトでデータベースを操作する3つのステップデータベースを操作するための具体的な手順1: ...

Mysqlアカウント管理の原理と実装方法の詳細な説明

この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...

ウェブページ制作をマスターするために必要な6つのスキルのまとめ

ウェブデザイナーはジェネラリストであると言わざるを得ません。グラフィックデザイナーは、さまざまな特殊...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

MySQL 8.0.15 圧縮版インストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.15圧縮版のインストール方法を紹介します。具体的な内容は...

Linux (Centos7) に mysql8.0.18 をインストールするチュートリアル図

1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...

同じ IP のアクセス頻度を制限するように nginx を設定する方法

1. nginx.conf の http{} に次のコードを追加します。 limit_conn_zo...

WeChatミニプログラム開発のためのコンポーネント設計仕様

WeChat ミニプログラム コンポーネント設計仕様コンポーネントベースの開発という考え方は、私の開...