Vue 3 に svg ファイルをインポートするにはどうすればよいですか?
P粉021854777
P粉021854777 2023-08-23 08:37:27
0
2
676
<p>次のことを試しました: <br /> <a href="https://github.com/visualfanatic/vue-svg-loader/tree/master">https://github.com /visualfanatic/vue-svg-loader/tree/master</a></p> <p>しかし、vue-template-compiler は Vue 2 で使用されているため、バージョンの競合が発生します。 </p> <p>試してみました:<br /> <a href="https://github.com/visualfanatic/vue-svg-loader">https://github.com/visualfanatic/vue-svg -loader</a></p> <p>しかし、特定の Vue 依存関係がありません。 </p> <p>TypeScript を使用する場合、型定義ファイルを宣言する必要があるという注意事項があることに気付きました。ただし、依然として「モジュール '../../assets/myLogo.svg' またはそれに対応する型宣言が見つかりません」というエラーが表示されます。 </p> <p>これは私が追加したものです: </p> <p>vue.config.js</p> <pre class="brush:php;toolbar:false;">module.exports = { chainWebpack: (config) => { const svgRule = config.module.rule('svg'); svgRule.uses.clear(); svgルール .use('vue-loader-v16') .loader('vue-loader-v16') 。終わり() .use('vue-svg-loader') .loader('vue-svg-loader'); }、 configureWebpack: process.env.NODE_ENV === 'production' ? {} : { 開発ツール: 'ソースマップ' }、 publicPath: process.env.NODE_ENV === 'production' ? '/パーソナルウェブサイト/' : '/' }</pre> <p>shims-svg.d.ts</p> <pre class="brush:php;toolbar:false;">モジュール '*.svg' を宣言 { 定数の内容: 任意; デフォルトのコンテンツをエクスポートします。 }</pre> <p>MyComponent.vue</p> <pre class="brush:php;toolbar:false;"><テンプレート> <div> <マイロゴ /> </div> </テンプレート> <script lang="ts"> import * as MyLogo from "../../assets/myLogo.svg"; デフォルトのエクスポートdefineComponent({ 名前: "MyComponent"、 コンポーネント: { マイロゴ }、 小道具: { }、 セットアップ(小道具) { 戻る { 小道具 }; } }); </script></pre> <p><br /></p>
P粉021854777
P粉021854777

全員に返信(2)
P粉676588738

vue-svg-loader は vue 3 と互換性がありません。 svg をインポートしてコンポーネントとして使用するには、ファイルの内容を「テンプレート」で囲むだけです

コンポーネント内:

リーリー

ウェブパック:

リーリー

scripts/svg-to-vue.js:

リーリー
いいねを押す +0
P粉587970021

実際、Vue CLI はすでに SVG をネイティブにサポートしています。内部では file-loader を使用します。ターミナルで次のコマンドを実行して確認できます:

リーリー

「svg」がリストされている場合 (そうであるはずです)、必要なのは次のことだけです。

リーリー

したがって、目的が SVG を表示することだけであれば、サードパーティのライブラリは必要ありません。

もちろん、TypeScript コンパイラーの型宣言要件を満たすために:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!