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 プライベート リポジトリを構築する方法

推薦する

Webデザイン: タイトルが完全に表示できない場合

<br />今日、新しくなった ChinaUI.com の Web サイトを見たのですが...

Windows で nginx を素早くインストールし、自動的に起動するように設定する

目次1. Windows システムでの Nginx のインストールと起動プロセス: 2. 起動時にN...

yum インストールエラーの問題を解決する 保護されたマルチライブラリバージョン

現在、クラウドサーバーに nginx をインストールする際、最初に zlib などの依存ライブラリを...

Docker で Portainer ビジュアル インターフェースを構築するための詳細な手順

前回述べた問題を解決するために、オンラインで検索したところ、非常に優れたビジュアル インターフェース...

開発にVscodeとdockerを組み合わせて使用​​する詳細なプロセス

序文Docker と VS Code を使用すると、ローカル開発環境全体を最適化し、プロジェクトの進...

NginxにLuaモジュールを追加する方法

luaをインストールする http://luajit.org/download/LuaJIT-2.0...

Ubuntu 18.04 向け VMware Tools のインストールと構成のチュートリアル

この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...

MySQL 5.7.18 インストールチュートリアルと問題の概要

MySQL 5.7.18 のインストールと問題の概要。今日、新しい MySQL サーバーを導入しまし...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

MySQL テーブルを作成するためによく使用される SQL ステートメントの概要

最近、私はプロジェクトに取り組んでおり、背景を記述するために SQL ステートメントを使用する必要が...

JavaScriptはパスワードボックスの検証情報を実装します

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

Dockerにおけるコンテナとイメージの違いについてお話ししましょう

鏡とは何ですか?イメージは、複数のイメージ レイヤー (UnionFS および AUFS ファイル ...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

Django プロジェクトを作成して MySQL に接続する方法

1: django-admin.py startproject プロジェクト名2: cd プロジェク...

JS で列挙をシミュレートする方法

序文現在の JavaScript には列挙の概念がありません。一部のシナリオでは、列挙を使用するとデ...