1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

vueでrequire()を使うとエラーが起きて動かなくなってしまった。

Last updated at Posted at 2023-04-01

はじめに

vueでconponentを作成しpropsを使って画像のpathを渡そうと思ったがうまく表示させる事ができなかった。
色々試してみて解決方法と原因がわかったので同じ現象に合った方は試してみてください。

環境

  • M1 mac book
  • vite
  • vue3
  • nuxt3

試してみた事①

require()を使う。

propsで画像のpathを渡したい時などはrequire()を使えばいいと記事では多くみた。

  • 親コンポーネント
    <script setup lang="ts">
      import srcImg from "画像path"
    </script>
    <template>
      <component/ :srcImg="srcImg">
    </template>
    
  • 子コンポーネント
    <script setup lang="ts">
      const props = defineProps({
        srcImg : String,
      })
    </script>
    
    <template>
      <div>
        <img :src="srcImg" alt="画像">
      </div>
    </template>
    

この方法が一番多く記事としてあったが自分の環境ではうまく表示する事ができなかった

試してみた事②

importを使って画像のpathを読み込む

自分の環境ではviteを使って開発しています。
どうやらviteを使っているとrequire()を使う事ができないらしい。
(原因はここだった)

この方法を使ってうまく表示する事ができました。

  • 親コンポーネント

    <script setup lang="ts">
      import srcImg from "画像path"
    </script>
    <template>
      <component/ :srcImg="srcImg" >
    </template>
    
  • 子コンポーネント

    <script setup lang="ts">
      const props = defineProps({
        srcImg : String,
      })
    </script>
    
    <template>
      <div>
        <img :src="srcImg" alt="画像">
      </div>
    </template>
    

まとめ

一度viteを使ってしまうとvue-cliには戻れる気はしないので解決できてよかったです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?