テクノロジースタックとバージョン 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 の長いテキストは、タグの幅を超えると自動的に切り捨てられます。
目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...
1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...
<table>テーブルデータをJSON形式に変換するJavaScript関数は次のとおり...
1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...
具体的な方法: 1. [ win+r ] を押して実行ウィンドウを開き、「regedit」と入力して...
まず、私の基本的な開発環境を見てみましょう。オペレーティングシステム: MacOS 10.13.5 ...
デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...
3 つの方法を使用する簡単な例は次のとおりです。インラインスタイル: <!doctypehtm...
負荷は通常、システム設計時に予測されます。システムがパブリック ネットワークに公開されている場合、悪...
任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...
テストテーブルを作成する -- ---------------------------- -- ch...
目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...
この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...
1.docker search mysql查看mysql版本 2. docker pull mysq...
今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...