1. 程式人生 > 其它 >如何在Vue引入靜態圖片?

如何在Vue引入靜態圖片?

引言

本文介紹了在 Vue 專案中引入靜態圖片的兩種方式, 即 requireimport; 並給出了對應的使用方法, 可供大家參考; 另外也略微研究了一下這兩種方式的區別和優劣, 不當之處, 請大家不吝指出.

原文地址: http://blog.duhbb.com/2022/02/13/how-to-import-static-img-in-vue/

歡迎訪問我的部落格: http://blog.duhbb.com/

正在寫 Vue 的一個小 demo, 需要在對話方塊放置一張圖片, 感覺應該不用請求後端, 想著直接在前端存放這張圖片就可以了.

讓我直接寫我是不會的, 只能上網搜尋了.

引入方法

require的方式引入

<template>
  <div style="margin:100px">
    <div>
      <img :src="cat" alt="貓咪">
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      cat: require('../assets/images/cat.jpg'),
    }
  }
}
</script>

import的方式引入

  • import引入圖片
  • data中註冊一下引入的圖片名稱
  • 模板中直接引用名稱
<template>
  <div style="margin:100px">
    <div>
      <img :src="cute" alt="小可愛">
    </div>
  </div>
</template>

<script>
/* 我擦, 還能這麼引入嗎, 那引入過來的是個啥? */
import cute from '../assets/images/cute.jpg'
export default {
  data () {
    return {
      cute
    }
  }
}
</script>

例子, 圖片類似就是這樣的: assets/images/cat.jpg, 把圖片放到 assets/images 這個目錄下.

require和import的區別

感覺的區分一下兩者的區別, 或者優劣.

requireimport 都是為了 js 模組化而使用的.

ES6 模組的設計思想, 是儘量的靜態化, 使得編譯時就能確定模組的依賴關係, 以及輸入和輸出的變數.

require 是 CommonJS 的語法, CommonJS 的模組是物件, 輸入時必須查詢物件屬性.

require 的核心概念: 在匯出的檔案中定義 module.exports, 匯出的物件型別不予限定(可為任意型別). 在匯入的檔案中使用 require() 引入即可使用. 本質上, 是將要匯出的物件賦值給 module 這個物件的 exports 屬性, 在其他檔案中通過 require 這個方法來訪問 exports 這個屬性.

import 是 es6 為 js 模組化提出的新的語法, import(匯入)要與 export(匯出) 結合使用。

因為 require 是執行時載入, 所以 import 命令沒有辦法代替 require 的動態載入功能.

這個只是暫時區分一下, 感覺一兩句話說不清楚.

P.S. 所以如果圖片可以動態加入到目錄中, 則我們可以使用 require, 如果只能使用以及載入的圖片, 我們可以使用 import, 是嗎?

參考資料

結束語

本文介紹了在 Vue 專案中引入靜態圖片的兩種方式, 即 requireimport; 並給出了對應的使用方法, 可供大家參考; 另外也略微研究了一下這兩種方式的區別和優劣, 不當之處, 請大家不吝指出.

原文地址: http://blog.duhbb.com/2022/02/13/how-to-import-static-img-in-vue/

歡迎訪問我的部落格: http://blog.duhbb.com/