アイコン処理ソリューションこの記録の目的は、element-plus 以外のアイコンをコンポーネントにカプセル化する方法を記録することです。仕事でアイコンの問題に対処するのに役立つことを願っています。 分析の結果、要素プラス アイコンは el-icon を通じて表示できますが、カスタム アイコンの場合は、カスタム svg アイコンを表示するためにカスタム アイコン コンポーネントが必要であることがわかりました。 コンポーネントの機能
アイコンコンポーネントのパッケージ化のアイデア表示用アイコンコンポーネント
<テンプレート> <div v-if="isExternal" :style="styleExternalIcon" クラス="svg-external-icon svg-icon" :class="クラス名" /> <svg v-else class="svg-icon" :class="className" aria-hidden="true"> <use :xlink:href="iconName" rel="external nofollow" /> </svg> </テンプレート> <スクリプトの設定> '@/utils/validate' から { isExternal を external としてインポートします。 'vue' から {defineProps, computed} をインポートします。 const props = defineProps({ //アイコン アイコン: { タイプ: 文字列、 必須: true }, // アイコンクラス名 className: { タイプ: 文字列、 デフォルト: '' } }) /** * 外部アイコンかどうかを判定する*/ const isExternal = computed(() => external(props.icon)) /** * 外部アイコンスタイル */ const styleExternalIcon = computed(() => ({ マスク: `url(${props.icon}) 繰り返しなし 50% 50%`, '-webkit-mask': `url(${props.icon}) 繰り返しなし 50% 50%` })) /** * プロジェクトアイコン */ const iconName = computed(() => `#icon-${props.icon}`) </スクリプト> <style lang='scss' スコープ> .svgアイコン{ 幅: 1em; 高さ: 1em; 垂直位置合わせ: -0.15em; 塗りつぶし: 現在の色; オーバーフロー: 非表示; } .svg-外部アイコン { 背景色: 現在の色; マスクサイズ: カバー !important; 表示: インラインブロック; } </スタイル> リソースが外部リソースであるかどうかを判断する
/** * 外部リソースであるかどうかを判断する*/ エクスポート関数isExternal(path) { /^(https?:|mailto:|tel:)/.test(パス) を返します。 } 外部SVGアイコン表示コンポーネント svg-icon を導入することで、icon はアイコンの外部リンクを渡します。 <span class="svg-container"> <svg-icon icon="https://xxx.svg"></svg-icon> </span> プロジェクト内のSVGアイコンの処理
ファイルは2つのことを行う
index.jsコードは以下のとおりです リファレンスドキュメント 依存関係管理 | webpack 中国語ドキュメント '@/components/SvgIcon' から SvgIcon をインポートします。 // require.context() 関数を使用して独自のコンテキストを作成します const svgRequire = require.context('./svg', false, /\.svg$/) // この時点で、require インポートのリクエスト パラメータを受け入れることができる require 関数が返されます。 // この関数は 3 つのプロパティを提供し、require.keys() を通じてすべての svg アイコンを取得できます // アイコンをトラバースし、アイコンを require import 関数へのリクエストとして渡して、ローカル svg アイコンのインポートを完了します svgRequire.keys().forEach(svgIcon => svgRequire(svgIcon)) デフォルトアプリをエクスポート => { app.component('svg-icon', SvgIcon) } グローバルに登録されたプロジェクトアイコンこのファイルをmain.jsにインポートします ... // svgIcon をインポート '@/icons' から installIcons をインポートします ... アイコンをインストール(アプリ) ... 内部アイコンを使用する// ユーザー名 <svg-icon icon="user" /> // パスワード<svg-icon icon="password" />
インストール: 定数パス = require('path') 関数resolve(dir) { path.join(__dirname, dir) を返します } モジュール.エクスポート = { チェーンWebpack(config) { // svg-sprite-loader をセットアップする 構成モジュール .rule('svg') .exclude.add('src/icons' を解決します) 。終わり() 構成モジュール .rule('アイコン') .test(/\.svg$/) .include.add('src/icons' を解決します) 。終わり() .use('svg-sprite-loader') .loader('svg-sprite-loader') .オプション({ シンボルID: 'icon-[名前]' }) 。終わり() } } これは内部の svg アイコンを処理します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Docker Compose のインストールと使用手順
CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...
mysqlに接続できない問題の解決方法を参考までに紹介します。具体的な内容は以下のとおりです。昨日は...
序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...
1.コアファイルプログラム実行中にセグメンテーション エラー (コア ダンプ) が発生すると、プログ...
iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...
脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...
目次序文1. ファントムリーディングとは何ですか? 2. ファントムリーディングの問題点は何ですか?...
コンテナデータボリュームとはデータがコンテナ内にある場合、コンテナを削除するとデータは失われます。例...
反復/egrep構文: grep [-cinvABC] 'word' ファイル名-c...
目次インストール: 1. ファイアウォールの基本的な使い方2. ファイアウォールd-cmdを設定する...
覗き見の問題サーバーでは、IIS サービスが複数のサイトを展開していると仮定すると、サイトの 1 つ...
この記事の例では、ページ切り替え効果を実現するためのJSコードの具体的なコードを参考までに共有してい...
この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...
目次1. binlogの紹介2. Binlog関連のパラメータ3. バイナリログの内容を分析するIV...
「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...