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

推薦する

JavaScript 配列重複排除問題の詳細な研究

目次序文 👀リサーチを始めましょう🐱‍🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...

MySQL ストアド プロシージャの権限の問題の概要

MySQL ストアド プロシージャは、確かに、非常にまれな使用シナリオのように見えます。この問題は、...

DockerにRocketMQをインストールするための実装手順

目次1. 画像を取得する2. ブローカーサーバーを作成する3. ブローカーを作成する4. Rocke...

MySQLの主キーとユニークキーの重複挿入の解決策の詳細な説明

目次解決: 1. 無視する2. 交換する3. 重複キーの更新についてデータを挿入するときに、重複した...

Vue が学ぶべき知識ポイント: forEach() の使用

序文フロントエンド開発では、目的のコンテンツを取得するためにループをトラバースする必要がある状況に頻...

MySQL 8.0.21 無料インストール版 設定方法 グラフィックチュートリアル

MySQLをインストールする6つの手順(インストールパッケージのみがインストール場所を選択できます)...

ウェブサイトでページコンテンツや情報を直接コピーできない問題を解決する方法

最近では、多くのウェブサイトでは、ページ上の特定のコンテンツや情報を直接コピーすることは許可されてお...

仮想マシンに Windows Server 2008 オペレーティング システムをインストールする

この記事では、Windows Server オペレーティング システムのインストールと企業でのそのア...

Webフロントエンドの一般的な操作(JS/HTML/CSSなどの知識を含む)

ul liの前のアイコン1をキャンセルしますクリア値1値を1に設定ラベル中央値1をクリアラベルの中央...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

CSS変換ページめくりアニメーションレコードの実装

ページめくりの問題のシナリオBとCは同じページ(表と裏)にありますページをめくって A をカバーした...

nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...

MySQL スロークエリログの設定と使用方法のチュートリアル

序文MySQL スロー クエリ ログは、日常業務でよく遭遇する機能です。MySQL スロー クエリ ...

vue3.0共通コンポーネントの自動インポート方法の例

1. 前提条件インポートには require.context メソッドを使用します。vite で作成...