出典: 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 ページのレンダリング プロセスを理解する (続き)
何人かの学生は、マスターとスレーブの間の不一致の問題に遭遇したと述べました。一般的な状況としては、m...
序文最近、テスト環境で MySQL データベースが自動的に再起動し続ける問題が発生しました。原因は、...
目次1. JSの特徴1.1 マルチパラダイム1.2 説明1.3 シングルスレッド1.4 ノンブロッキ...
ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...
書き方1: sas_order_supply_month_pay セットを更新 RECEIVE_TI...
目次1. 静的実装方法: 2. 第2のシミュレーション動的方法3. 3番目の動的データ方式4. 動的...
H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...
以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...
Linux の優れた点は、マルチユーザー、マルチタスク システムにあります。 Linux では通常、...
主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...
今日、研究室のプロジェクトを見ていたとき、私にとって「難しい」問題に遭遇しました。実は、それは私があ...
この記事では、セキュリティ、使用方法、同時処理などを通じて、MySQL トランザクションとデータの一...
成果を達成する html <h2>CSS3 タイムライン</h2> <...
nginx Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバー...
:= と = の違い=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の...