出典: 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. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除...
Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思いま...
<br />多くの中小企業ではこの問題は発生しません。中小企業はデザイナーをサポートし、...
1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...
序文Mac システムのターミナルでファイルの権限を変更するには、Linux の chmod コマンド...
MySQL8.0.12 インストールチュートリアルをみんなで共有します。 1. インストール1.イン...
目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...
この記事では、Google 入力方法をインストールします。実は以前はSogou入力方式を使っていたの...
1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...
目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...
序文Linux 環境で作業するエンジニアは、これらの面倒な命令とパラメータのコマンドラインにきっと驚...
この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...
応答性を実現するための object.defineProperty の理解observe/watch...
コードをコピーコードは次のとおりです。 <html xmlns="">...
エフェクト表示: 環境準備コントローラーノード: 6GB 4時間60GB/30GB/30GB計算ノー...