Element-UIの10の驚くべきトリックのまとめ

Element-UIの10の驚くべきトリックのまとめ

el-scrollbar スクロールバー

このコンポーネントは見慣れないものに見えますか? そうです、このコンポーネントはエレメントの公式 Web サイトには一度も登場したことがありません (おそらくパフォーマンスの問題が原因)。しかし、良いものがどうして隠されるのでしょうか? レンダリングを以下に示します。

ネイティブのスクロールバーよりもずっと美しいと思いませんか? 使用方法も非常に簡単です。

<el-スクロールバー>
  <div class="box">
    <p v-for="item in 15" :key="item">el-scrollbar {{item} の使用を歓迎します</p>
  </div>
</el-スクロールバー>

<スタイルスコープ>
.el-スクロールバー{
  境界線: 1px 実線 #ddd;
  高さ: 200px;
}
.el-scrollbar :: v-deep .el-scrollbar__wrap {
    overflow-y: スクロール;
    オーバーフロー-x:非表示;
  }
</スタイル>

スクロールバーの内側のボックスの高さがスクロールバーの高さを超えている限り、スクロールバーが表示されます。水平スクロールバーにも同じことが適用されます。

el-uploadはクリックをシミュレートします

時々、el-upload のアップロード機能を使いたいのですが、el-upload のスタイルは使いたくないことがあります。どうすれば実現できるでしょうか?方法も非常に簡単で、el-upload を非表示にしてクリックをシミュレートするだけです。

<button @click="handleUpload">ファイルをアップロード</button>
<el-アップロード
  v-show="false"
  クラス="アップロードリソース"
  複数
  アクション=""
  :http-request="クリックアップロードファイル"
  ref="アップロード"
  :on-success="アップロード成功"
>
    ローカルファイルをアップロード</el-upload>

<スクリプト>
エクスポートデフォルト{
    メソッド: {
        //クリックをシミュレートする handleUpload() {
            document.querySelector(".upload-resource.el-upload").click()
        },
        // ファイルをアップロードする async clickUploadFile(file) {
            const フォームデータ = 新しいフォームデータ()
            formData.append('ファイル', ファイル.ファイル)
            const res = api.post(`xxx`, formData) を待機します
        }
        // アップロードが成功したら、コンポーネントの組み込みファイルリストをクリアします uploadSuccess() {
            this.$refs.upload.clearFiles()
        }
    }
}
</スクリプト>

el-selectドロップダウンボックスのオプションが長すぎます

多くの場合、ドロップダウン ボックスの内容は制御できません。ドロップダウン ボックスのオプションが長すぎると、必然的に一貫性のないページになります。解決策は、1 行を省略してテキスト プロンプトを追加することです。

<el-select popper-class="popper-class" :popper-append-to-body="false" v-model="value" placeholder="選択してください">
    <el-オプション
      v-for="オプション内の項目"
      :key="アイテム.値"
      :label="アイテム.ラベル"
      :value="アイテムの値"
    >
        <el-ツールチップ
          配置="上"
          :disabled="item.label.length<17"
        >
            <div スロット="コンテンツ">
                <span>{{item.label}}</span>
            </div>
            <div class="iclass-text-ellipsis">{{ item.label }}</div>
        </el-tooltip>
    </el-option>
</el-select>

<スクリプト>
  エクスポートデフォルト{
    データ() {
      戻る {
        オプション: [{
          値: 'オプション 1'、
          ラベル: 「ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ、ゴールデンケーキ」
        }, {
          値: 'オプション 2'、
          ラベル: 「ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク、ダブルスキンミルク」
        }, {
          値: 'オプション 3'、
          ラベル: 「牡蠣オムレツ牡蠣オムレツ牡蠣オムレツ牡蠣オムレツ牡蠣オムレツ牡蠣オムレツ牡蠣オムレツ」
        }],
        価値: ''
      }
    }
  }
</スクリプト>

<スタイルスコープ>
.el-select {
  幅: 300ピクセル;
}
.el-select ::v-deep .popper-class {
  幅: 300ピクセル;
}
.iclass-テキスト省略記号 {
  空白: ラップなし;
  オーバーフロー: 非表示;
  テキストオーバーフロー: 省略記号;
}
</スタイル>

効果は以下のとおりです。

el-input の先頭または末尾にスペースを入れることはできません

入力ボックスを使用する場合、ほとんどの場合、ユーザーが前後にスペースを入力することは望ましくありません。それを確認する簡単な方法はありますか? もちろんあります。

<el-form :rules="ルール" :model="フォーム" label-width="80px">
    <el-form-item label="アクティビティ名" prop="名前">
        <el-input v-model="フォーム名"></el-input>
    </el-form-item>
</el-form>

<スクリプト>
エクスポートデフォルト{
    データ() {
        戻る {
            形状: {
                名前: ''
            },
            ルール:
                名前: [
                        { 必須: true、メッセージ: 'アクティビティ名を入力してください'、トリガー: 'blur'}、
                        { パターン: /^(?!\s+).*(?<!\s)$/、メッセージ: '最初と最後のスペースは使用できません'、トリガー: 'blur' }
                ]
            }
        }
    }
}
</スクリプト>

効果は以下のとおりです。

el-input type=number 中国語の文字を入力し、フォーカスを上に移動する

el-input を type="number" に設定すると、入力時に中国語の文字は表示されませんが、フォーカスは上に移動します。

解決:

<スタイルスコープ>
::v-deep .el-input__inner {
    行の高さ: 1px !重要;
}
</スタイル>

el-input type=number はフォーカス時に上下矢印を削除します

解決:

<el-input class="clear-number-input" type="number"></el-input>

<スタイルスコープ>
.clear-number-input ::v-deep input[type="number"]::-webkit-outer-spin-button,
.clear-number-input ::v-deep input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: なし !important;
}
</スタイル>

el-formはフォーム内の1つのフィールドのみをチェックします

場合によっては、確認コードの送信や携帯電話番号の個別確認など、一部のフィールドを個別に確認する必要があります。次の操作を実行できます。

this.$refs.form.validateField('name', 有効 => {
    (有効)の場合{ 
        console.log('送信!'); 
    } それ以外 { 
        console.log('エラー送信!'); 
        false を返します。 
    }
})

el-dialogはポップアップウィンドウを再度開き、フォーム情報をクリアします

ポップアップを開いたときに $nextTick でフォームをリセットする人もいますが、私はポップアップを閉じた後にリセットすることを選択します。

<el-dialog @closed="フォームをリセット">
    <el-form ref="フォーム">
    </el-form>
</el-ダイアログ>

<スクリプト>
エクスポートデフォルト{
    メソッド: {
        リセットフォーム() {
            this.$refs.form.resetFields()
        }
    }
}
</スクリプト>

el-dialog の destroy-on-close プロパティ設定が無効です

destroy-on-close を true に設定すると、ポップアップ ウィンドウが閉じられた後も DOM 要素が残っており、破棄されていないことがわかります。
解決策: el-dialog に v-if を追加します。

<el-dialog :visible.sync="visible" v-if="visible" 閉じると破棄されます>
</el-ダイアログ>

el-table 表の内容が省略範囲を超えています

テーブルの内容が長すぎると、手動でスタイルを追加するのは面倒です。それを解決するには、show-overflow-tooltip を追加するだけでよいことをこっそり教えます。

<el-テーブル列
  prop="アドレス"
  label="住所"
  幅= "180"
  オーバーフローツールチップを表示
>
</el-table-column>

効果は以下のとおりです。

10 個の素晴らしい Element-UI トリックのまとめに関するこの記事はこれで終わりです。関連する Element トリックの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue 要素と Nuxt の使用に関するヒントを共有する
  • document.documentElement の使用上のヒント

<<:  MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明

>>:  Docker を使用して pypi プライベート リポジトリを構築する方法

推薦する

シンプルな HTML ビデオ プレーヤーを実装する方法

この記事では、シンプルな HTML ビデオ プレーヤーを実装する方法を紹介し、皆さんと共有します。詳...

ファイルをアップロードするための HTML フォームの「参照」ボタンを変更する方法

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

JSはプログレスバーのスムーズバージョンの詳細な計画を実装します

進捗バーがスムーズではないフロントエンドを学ぶ学生のほとんどは、オーディオプレーヤーやビデオプレーヤ...

Linux netstatコマンドの詳細な説明

目次Linux netstat コマンド1. TCP接続ステータスの詳細な説明2. コマンド形式3....

適応レイアウトの処理について(フロートとマージンネガティブマージンを使用)

適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...

Vue での ElementUI の使用に関する詳細な説明

ログイン + セッションストレージエフェクト表示ログインに成功すると、ユーザー ID がフロントエン...

MYSQL データベースの基礎 - 結合操作の原理

結合では、ネスト ループ結合アルゴリズムが使用されます。ネスト ループ結合には 3 つの種類がありま...

MySQL マスタースレーブスイッチチャネルの問題の解決策

VIP を設定した後、アクティブ/スタンバイの切り替え中に表示されるエラー メッセージは次のとおりで...

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...

border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

開発中に、非常に単純なテキストバブル効果に遭遇しました。これは、おおよそ次のようになります。 うーん...

MySQL 条件付きクエリと使用法および優先順位の例の分析

この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...

ウェブページの読み込み速度を上げる6つのヒント

第二に、キーワードのランキングは、Webページの表示速度にも関係しています(参照:キーワードランキン...

ElementUI の this.$notify.close() 呼び出しが機能しない問題の解決方法

目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...

セマンティックHTML構造を理解する方法

HTML と CSS は誰もが知っていると思います。HTML の構造と CSS の表現の分離も知って...