Vue.jsで実装されたカレンダープラグインの使い方を詳しく説明します

Vue.jsで実装されたカレンダープラグインの使い方を詳しく説明します

本日実装する機能は、以下の機能です。vue.js シミュレーションカレンダープラグイン

さて、もう無駄な話はやめて、早速コードを見てみましょう

css:

*{
     マージン: 0;
     パディング: 0;
     -webkit-box-sizing: 境界線ボックス;
     -moz-box-sizing: 境界線ボックス;
     ボックスのサイズ: 境界線ボックス;
        }
        #アプリ{
            幅: 1000ピクセル;
            マージン: 10px 自動;
        }
        .カレンダー{
            幅: 1000ピクセル;
        }
        .カレンダーテーブル{
            幅: 1000ピクセル;
        }
        .calender テーブル,th,tr,td{
            境界線:1px 実線 #333333;
            境界線の折りたたみ: 折りたたみ;
        }
        .calender td{
            高さ: 100px;
            垂直方向の位置合わせ: 上;
            テキスト配置: 左;
            パディング: 5px 0 0 5px;
            フォントサイズ: 13px;
        }
        .calender td.cur{
            色:赤;
        }

html:

<div id="アプリ">
    <div class="カレンダー">
        <テーブル>
            <キャプション>
                <v-model.number="年" を選択">
                    <option v-for="i of 490">{{i+1969}}</option>
                </選択>
                <v-model.number="月" を選択">
                    <option v-for="i of 12">{{i}}</option>
                </選択>
            </caption>
            <頭>
            <tr>
                <th>日曜日</th>
                <th>月曜日</th>
                <th>火曜日</th>
                <th>水曜日</th>
                <th>木曜日</th>
                <th>金曜日</th>
                <th>土曜日</th>
            </tr>
            </thead>
            <t本文>
            <!-- インデックスは 0 から始まり、i は 1 から始まります -->
            <tr v-for="(a,index) カレンダーの長さ / 7" >
                <td v-for="i of 7" :class="{cur:calender[index * 7 + (i - 1)].cur }">{{calender[index * 7 + (i - 1)].fullDay}}</td>
            </tr>
            </tbody>
        </テーブル>
    </div>
</div>

js:

var vm = 新しい Vue({
        el:'#app',
        データ:{
            年:2018,
            月:1
        },
        計算:{
            カレンダー(){
                var arr = [];

                //新しいデータには 3 つのパラメーターがあります: 1. 年 2. 月 3. デフォルトは 1 です。0 の場合は、前月の最終日 (最初の 2 日間) 3 明後日を意味します。var nowMonthLength = new Date(this.year,this.month,0).getDate();
                var nowMonthFirstWeek = new Date(this.year,this.month-1).getDay();
                var lastMonthLength = new Date(this.year,this.month-1,0).getDate();
                console.log('今月は次のようになります:' + nowMonthLength);
                console.log('今月の最初の日' + nowMonthFirstWeek);
                console.log('先月の長さ' + lastMonthLength);

                // this.month = parseInt(this.month);
                //各月の前月はどの月でしょうか? var pmonth = this.month == 1 ? 12 : this.month - 1;
                //前年 var pyear = this.month == 1 ? this.year - 1 :this.year;
                //次の月 var nmonth = this.month == 12 ? 1 : this.month + 1;
                //次の月 var nyear = this.month == 12 ? this.year + 1 : this.year;
                //ゼロ埋め関数 // function toTwo(n) {
                // n < 10 ? '0' + n : n を返します。
                // }
                関数ビルド(n) {
                    n.toString().length > 1 を返します ? n.toString() : '0' + n.toString();
                }
                // 先月の最後の数日を追加します while(nowMonthFirstWeek--){
                    arr.unshift({
                        日:先月の長さ、
                        現在の値:true、
                        フルデイ:`${pyear}-${buling(pmonth)}-${buling(lastMonthLength)}`
                    });
                    先月の長さ--
                }
                コンソールにログ出力します。

                //今月の日数 var _a = 1;
                while(nowMonthLength--){
                    arr.push({
                        日:_a、
                        偽:
                        フルデイ:`${this.year}-${buling(this.month)}-${buling(_a)}`
                    });
                    _a++
                }

                //翌月に完了 var nextLength = arr.length > 35 ? 42 - arr.length : 35 - arr.length;
                _a = 1;
                while (nextLength--){
                    arr.push({
                        日:_a、
                        現在の値:true、
                        フルデイ:`${nyear}-${buling(nmonth)}-${buling(_a)}`
                    });
                    _a++
                }
                arr を返します。
            }
        }
    })

注意: 適切に実行するには、まずローカルの vue.js ファイルをインポートする必要があります。

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

以下もご興味があるかもしれません:
  • vue ビデオ再生用の vue-video-player プラグインの使用方法
  • Vue で Lodop プラグインを使用して印刷機能を実装する簡単な方法
  • Vueページングプラグインの使い方
  • Vue WeChat共有プラグインの使い方の詳しい説明
  • vue プロジェクトで vue-layer 箇条書きボックス プラグインを使用する方法
  • vue で jsonp プラグインを使用する例
  • Vue画像切り抜きプラグインvue-cropperの使い方を詳しく説明します
  • Vueプラグインの使用法の詳細な共有

<<:  mysql 8.0.20 winx64.zip 圧縮版のインストールと設定方法のグラフィックチュートリアル

>>:  Win10 での MySQL 8.0.20 のインストールと設定のチュートリアル

推薦する

MySQLの共同クエリ最適化メカニズムの詳細な説明

目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

CSS3で実装されたテキストポップアップ効果

成果を達成する実装コードhtml <div>123WORDPRESS.COM</d...

vue プロジェクトで rem を使用して px を置き換える例

目次道具プラグインをインストールするプロジェクトのルートディレクトリに.postcssrc.jsファ...

MySQLが日付フィールドインデックスを使用しない理由の要約

目次背景探検する要約する背景テーブルでは、dataTime フィールドは varchar 型に設定さ...

Dockerを使用してNextCloudネットワークディスクを展開する方法

NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...

MySQLソートにおけるCASE WHENの使用例

序文以前のプロジェクトでは、SQL の CASE WHEN ソート関数が使用されました。ではブログメ...

CSSプリコンパイル言語とその違いの詳細な説明

1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...

Nginx の場所に関する一般的なルールの優先順位の問題

目次1. 場所/マッチング2. 場所 = / 一致Locaitonには、完全一致(=)、プレフィック...

Linux で fdisk を使用してディスクをパーティション分割する方法

Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...

HTML ページ内の js および css ファイルのキャッシュを自動的にクリーンアップします (バージョン番号を自動的に追加します)

Web プロジェクトの開発プロセスでは、CSS ファイルや JS ファイルを参照することがよくあり...

Centos7.5 構成 Java 環境のインストール Tomcat の説明

Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...

Vueは画像のドラッグと並べ替えを実装します

この記事の例では、画像のドラッグと並べ替えを実装するためのVueの具体的なコードを参考までに共有して...

Apple M1チップにnginxをインストールし、vueプロジェクトをデプロイする詳細な手順

nginx をインストールApple Mac ではインストールに brew を使用します。brew ...

MySQL の自動増分 ID に関するいくつかの小さな問題の要約

以下の質問はすべて InnoDB ストレージ エンジンに基づいています。 1. 最も大きな ID を...