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 テーブルの空白セル補完を実装する方法

私が初めて Web 開発を独学で学んだ頃は、いわゆる DIV/CSS レイアウトはなく、テーブル レ...

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

MYSQL スロークエリとログの例の説明

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

オペレーターが知っておくべき 18 個の Nginx プロキシ キャッシュ構成のヒント (どれを知っていますか?)

アプリケーションや Web サイトのパフォーマンスが成功の重要な要素であることは誰もが知っています。...

Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...

MySQL ディープ ページング (数千万のデータを素早くページ分割する方法)

目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...

TomcatはNginxリバースプロキシのクライアントドメイン名を取得します

質問Nginx リバース プロキシの後、Tomcat アプリケーションは、クライアント ブラウザーの...

複数の .sql ファイルを MySQL に効率的にインポートする方法の詳細な説明

MySQL には、複数の .sql ファイル (SQL ステートメントを含む) をインポートする方法...

仮想マシン VMware に Kali Linux をインストールする最新の超詳細なグラフィック チュートリアル

目次1. システムイメージファイルをダウンロードする2. 新しい仮想マシンを作成する3. Kali ...

Vueデータ割り当て問題の解決

私が長い間遭遇してきた問題を要約してみましょう。プロジェクトでは、フロントエンドをレンダリングするた...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

div+cssとウェブ標準ページの利点

div 要素は、HTML ドキュメント内のブロックレベル コンテンツの構造と背景を提供するために使用...

InnoDB がトランザクション分離レベルを巧みに実装する方法

序文前回の記事「MySQL ロック メカニズムの詳細説明」では、InnoDB のロック メカニズムに...