出典: 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)
1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...
HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...
最近、仕事でサウンド ファイルを再生するために Web ページにプレーヤーを埋め込む必要に迫られまし...
LinuxでのMySQL-5.7.19バージョンの初心者向けの最初のインストールについては、前の記事...
1. concat() 関数機能: 複数の文字列を 1 つの文字列に連結する構文: concat(s...
Web 開発を行う際に、フラッシュがページ内の要素をブロックする状況に遭遇することがあります。フラ...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
Array の filter、find、some、reduce メソッドの違いを区別し、使用シナリオ...
Docker システムの学習チュートリアルでは、Dockerfile を使用して Docker イメ...
IE は開発の初期段階では頭を悩ませましたが、他のブラウザとは異なります。他のブラウザがサポートして...
概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...
1: readonly は、このコントロールをロックして、インターフェイス上で変更できないようにしま...
目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...
目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...
目次1. コンポーネント2. キープアライブ2.1 問題点2.2 キープアライブを使って解決する2....