Vueアイコンセレクターのサンプルコード

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/

'vue' から Vue をインポートします
import SvgIcon from '@/components/SvgIcon' // svg コンポーネント
 
// グローバルに登録する
Vue.component('svg-icon', SvgIcon)
 
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
すべて必須(必須) 

# デフォルト設定を置き換える
 
# マルチパス: true
# 完全: 真
 
プラグイン:
 
  # - 名前
  #
  # または:
  # - 名前: 偽
  # - 名前: true
  #
  # または:
  # - 名前:
  # パラメータ1: 1
  # パラメータ2: 2
 
-属性を削除:
    属性:
      - '埋める'
      - '塗りつぶしルール' 

<テンプレート>
  <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
  <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="iconName" rel="external nofollow" />
  </svg>
</テンプレート>
 
<スクリプト>
// ドキュメント: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
'@/utils/validate' から { isExternal } をインポートします。
 
エクスポートデフォルト{
  名前: 'SvgIcon',
  小道具: {
    アイコンクラス: {
      タイプ: 文字列、
      必須: true
    },
    クラス名: {
      タイプ: 文字列、
      デフォルト: ''
    }
  },
  計算: {
    外部() {
      isExternal(this.iconClass) を返します
    },
    アイコン名() {
      `#icon-${this.iconClass}` を返します
    },
    svgクラス() {
      if (this.className) {
        'svg-icon ' + this.className を返します
      } それ以外 {
        'svg-icon' を返す
      }
    },
    スタイル外部アイコン() {
      戻る {
        マスク: `url(${this.iconClass}) 繰り返しなし 50% 50%`,
        '-webkit-mask': `url(${this.iconClass}) 繰り返しなし 50% 50%`
      }
    }
  }
}
</スクリプト>
 
<スタイルスコープ>
.svgアイコン{
  幅: 1em;
  高さ: 1em;
  垂直位置合わせ: -0.15em;
  塗りつぶし: 現在の色;
  オーバーフロー: 非表示;
}
 
.svg-外部アイコン {
  背景色: 現在の色;
  マスクサイズ: カバー!重要;
  表示: インラインブロック;
}
</スタイル> 

<!-- @author 鄭傑 -->
<テンプレート>
  <div class="icon-body">
    <el-input v-model="name" style="position: relative;" clearable placeholder="アイコン名を入力してください" @clear="filterIcons" @input.native="filterIcons">
      <i slot="サフィックス" class="el-icon-search el-input__icon" />
    </el-input>
    <div class="アイコンリスト">
      <div v-for="(item, index) in iconList" :key="index" @click="selectedIcon(item)">
        <svg-icon :icon-class="item" style="高さ: 30px;幅: 16px;" />
        <span>{{ アイテム }}</span>
      </div>
    </div>
  </div>
</テンプレート>
 
<スクリプト>
'./requireIcons' からアイコンをインポートします
エクスポートデフォルト{
  名前: 'IconSelect',
  データ() {
    戻る {
      名前: ''、
      iconList: アイコン
    }
  },
  メソッド: {
    フィルターアイコン() {
      this.iconList = アイコン
      if (this.name) {
        this.iconList = this.iconList.filter(item => item.includes(this.name))
      }
    },
    選択されたアイコン(名前) {
      this.$emit('選択された', 名前)
      ドキュメント本体をクリック()
    },
    リセット() {
      this.name = ''
      this.iconList = アイコン
    }
  }
}
</スクリプト>
 
<style rel="stylesheet/scss" lang="scss" スコープ>
  .アイコン本体{
    幅: 100%;
    パディング: 10px;
    .アイコンリスト{
      高さ: 200px;
      overflow-y: スクロール;
      div {
        高さ: 30px;
        行の高さ: 30px;
        下マージン: -5px;
        カーソル: ポインタ;
        幅: 33%;
        フロート: 左;
      }
      スパン {
        表示: インラインブロック;
        垂直位置合わせ: -0.15em;
        塗りつぶし: 現在の色;
        オーバーフロー: 非表示;
      }
    }
  }
</スタイル> 

これで、vue アイコン セレクターに関するこの記事は終了です。vue セレクターに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue 日付時刻ピッカーコンポーネントの使い方の詳細な説明
  • Vue で変数式セレクターを実装する方法
  • Cascaderカスケードセレクタデータエコーを使用したVueの落とし穴についての簡単な説明
  • Vueはマルチラベルセレクタを実装する
  • Vant で時間セレクターを実装するための Vue サンプル コード
  • mpvue WeChat アプレットの複数列セレクターの使用により、州と都市の選択を実現

<<:  フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)

>>:  MySQL 全文インデックスガイド

推薦する

MySQL にテーブルが存在するかどうかを確認し、それを一括で削除する方法

1. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除...

Nginx 502 Bad Gateway エラーの原因と解決策

Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思いま...

デザイン理論:計画、リソース、コミュニケーションの問題について

<br />多くの中小企業ではこの問題は発生しません。中小企業はデザイナーをサポートし、...

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

Macでのファイル権限の表示と設定の詳細な説明

序文Mac システムのターミナルでファイルの権限を変更するには、Linux の chmod コマンド...

MySQL 8.0.12 インストール グラフィック チュートリアル

MySQL8.0.12 インストールチュートリアルをみんなで共有します。 1. インストール1.イン...

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...

Ubuntu 20.04 中国語入力方法のインストール手順

この記事では、Google 入力方法をインストールします。実は以前はSogou入力方式を使っていたの...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

JavaScript 関数呼び出しの典型的なサンプルコード

目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...

効率を向上できる Linux コマンドエイリアス 10 個のまとめ

序文Linux 環境で作業するエンジニアは、これらの面倒な命令とパラメータのコマンドラインにきっと驚...

MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...

Vue のレスポンシブ原則と双方向データの詳細な分析

応答性を実現するための object.defineProperty の理解observe/watch...

HTML CSS JS はタブページのサンプルコードを実装します

コードをコピーコードは次のとおりです。 <html xmlns="">...

CentOS ベースの OpenStack 環境の展開に関する詳細なチュートリアル (OpenStack のインストール)

エフェクト表示: 環境準備コントローラーノード: 6GB 4時間60GB/30GB/30GB計算ノー...