テクノロジースタックとバージョン Vite2 + Vue3 + fontAwesome5 Vue3 でアイコンを使用する方法、fontAwesome はシンプルで使いやすいのですが、必要なアイコンが見つからない場合もあります。 svg方式を使用すると、必要なものを直接ダウンロードして使用できます。種類がより充実しており、基本的にニーズを満たさないアイコンはありません。ただし、fontAwesomeほど簡単ではなく、毎回対応する画像をダウンロードする必要があります。 1. SVGを使用する使用したいSVG画像をダウンロードし、src/iconsフォルダに保存します。 b fsとsvgに依存するローダーをインストールする コマンド: コマンド: c テンプレートファイルindex.vueを作成する テンプレートファイルコード <テンプレート> <svg :class="svgClass" v-bind = "$attrs"> <use :xlink:href="アイコン名"></use> </svg> </テンプレート> <スクリプトの設定> 「vue」から、defineProps、computed をインポートします。 const props = defineProps({ 名前: { タイプ: 文字列、 必須: true }, 色: タイプ: 文字列、 デフォルト: ''、 } }) const iconName = computed(()=>`#icon-${props.name}`); const svgClass = 計算済み(()=> { // console.log(props.name,'props.name'); if (props.name) { `svg-icon icon-${props.name}` を返します } 'svg-icon' を返す }); </スクリプト> <スタイル スコープ lang ="scss"> .svg-アイコン{ 幅: 3em; 高さ: 3em; 塗りつぶし: 現在の色; 境界線: 実線 2px 赤; 垂直位置合わせ: 中央; } </スタイル>> d グローバル登録 main.js './components' から { svgIcon } をインポートします。 .component('svg-icon',svgアイコン) e インポート処理関数を作成し、プラグインにsvgBuilder.jsを作成する コード 'fs' から { readFileSync, readdirSync } をインポートします。 idPerfix = '' とします const svgTitle = /<svg([^>+].*?)>/ const clearHeightWidth = /(幅|高さ)="([^>+].*?)"/g const hasViewBox = /(viewBox="[^>+].*?")/g 定数クリアリターン = /(\r)|(\n)/g 関数 findSvgFile(dir) { 定数svgRes = [] 定数 dirents = readdirSync(dir, { ファイルタイプ: true }) for (const dirent of dirents) { (dirent.isDirectory())の場合{ svgRes.push(...SvgFile を検索(dir + dirent.name + '/')) } それ以外 { const svg = readFileSync(dir + dirent.name) .toString() .replace(クリアリターン、'') .replace(svgTitle, ($1, $2) => { 幅を0にする 高さを0にする コンテンツ = $2.replace( クリア高さ幅、 (s1, s2, s3) => { s2 === '幅'の場合{ 幅 = s3 } そうでない場合 (s2 === '高さ') { 高さ = s3 } 戻る '' } ) if (!hasViewBox.test($2)) { コンテンツ += `viewBox="0 0 ${幅} ${高さ}"` } `<symbol id="${idPerfix}-${dirent.name.replace( を返します。 '.svg', '' )}" ${content}>` }) .replace('</svg>', '</symbol>') svgRes.push(svg) } } svgResを返す } エクスポート const svgBuilder = (path, perfix = 'icon') => { if (path === '') 戻り値 idPerfix = パーフィックス const res = findSvgFile(パス) 戻る { 名前: 'svg-transform', 変換インデックスHTML(html) { html.replace() を返す '<本文>', ` <本文> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" スタイル="位置: 絶対; 幅: 0; 高さ: 0"> ${res.join('')} </svg> ` ) } } } f 設定ファイルを変更し、svgBuilderを設定ファイルにインポートします。 vite.config.js を変更する './src/plugins/svgBuilder' から { svgBuilder } をインポートします。' デフォルトのdefineConfigをエクスポートする({ プラグイン: [ vue(), // 対応する関数を呼び出して svg を処理する svgBuilder('./src/icons/') // 対応するフォルダー。そうでない場合は見つかりません] }) SVGの使用 コア部分 <svg-icon name="questionmark" />//name svgイメージを取得します 2. fontAwesomeを使用するnpmインストール依存関係 $ npm i --save @fortawesome/fontawesome $ npm i --save @fortawesome/vue-fontawesome $ npm i --save @fortawesome/fontawesome-free-solid $ npm i --save @fortawesome/fontawesome-free-regular $ npm i --save @fortawesome/fontawesome-free-brands b mian.js グローバル登録 // オンデマンドでインポート import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' '@fortawesome/fontawesome-svg-core' から { ライブラリ } をインポートします。 '@fortawesome/free-solid-svg-icons' から { faAd } をインポートします '@fortawesome/free-solid-svg-icons' から { faAddressBook } をインポートします。 ライブラリを追加します(faAddressBook) // すべてをインポートする import { fas } from '@fortawesome/free-solid-svg-icons' '@fortawesome/free-brands-svg-icons' から { fab } をインポートします。 ライブラリを追加します(fas,fab) .component('font-awesome-icon', FontAwesomeIcon) c 使用 //オンデマンドインポートの使用<font-awesome-icon icon="address-book" class="fa-spin fa-lg"/> //グローバルインポートの使用 <font-awesome-icon :icon="['fas','address-book']" /> 3 ソースソースフォントAwesome https://www.jb51.net/article/228944.htm ソース svg https://www.jb51.net/article/228948.htm 4 結論対応するテクノロジー スタックとバージョンを決定し、手順に従えば問題は発生しません。 これで、Vue3 でアイコンを使用する 2 つの方法についての記事は終了です。Vue3 でアイコンを使用する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML の長いテキストは、タグの幅を超えると自動的に切り捨てられます。
この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...
デフォルトのブリッジ ネットワークのため、コンテナーを再起動すると IP アドレスが変更されます。シ...
1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...
最近、MySQL を使用してテーブル データを Excel ファイルにエクスポートしました。MySQ...
バブリングとは何ですか? DOM イベント フローには、イベント キャプチャ ステージ、ターゲット ...
この記事では、チャット機能を簡単に実装するためのVue+Websocketの具体的なコードを参考まで...
序文この記事では主に、SQL ステートメントの最適化の一般的な手順について説明します。これは、参考と...
目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...
用語: 1. VM: 仮想マシンステップ: 1. Windows 10 に VirtualBox 6...
Web テーブルの構造マークアップについて説明する前に、いくつかの画像を見てみましょう。 HTML ...
Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...
概要async/await と Promise の基本的な違いは、await fn() は現在の関数...
さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...
この記事では、WindowsでのMySQL 5.7.18のインストールと設定のチュートリアルを参考ま...
公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...