亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Vue頁面中怎么更優雅地引入圖片

發布時間:2021-12-09 13:16:02 來源:億速云 閱讀:263 作者:柒染 欄目:開發技術

在Vue頁面中怎么更優雅地引入圖片,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

在我們寫vue項目中肯定會用到各種圖片,那么如何更好的使用圖片資源呢。這里我講一下我常用的方法。

錯誤示范

也許你的代碼里常常會這樣寫

<template>
    <img :src="src">
</template>
<script>
    export default{
        data(){
            return {
               src: require('xxx.jpg')
            }
        }
    }
</script>

在webpack中,require會自動處理資源,這塊沒問題,但是你放到vue的data里,vue會遍歷data,給src加上響應式,但其實大部分時間,這個src并不需要響應式,這里造成了性能浪費。

通過computed

解決上面這個錯誤方案,解決的方案之一:computed

<template>
    <img :src="src">
</template>
<script>
   const src = require('xxx.jpg')
    export default{
        computed:{
           src(){
             return src
           }
        }
    }
</script>

computed本身就有緩存,可以減少一些性能浪費

當圖片不變的時候直接引入

<template>
    <img :src="src">
</template>

或者

<template>
    <div class="bg"></div>
</template>

<style>
 .bg{
 background:url("xxx.jpg")
 }
</style>

當我們這個圖片不會變化的時候,可以直接引入,并不需要賦值一個變量。

同樣,也可通過切換class名去動態顯示圖片,這樣也比較好

<template>
    <div :class="flag ? 'bg1':'bg2'"></div>
</template>
<script>
    export default{
     data(){
            return {
               flag: true
            }
        }
    }
</script>
<style>
 .bg1{
 background:url("xxx1.jpg")
 }
 .bg2{
 background:url("xxx2.jpg")
 }
</style>

通過css變量切換圖片

這個只是我剛剛想起來的一個想法,理論上css變量可以存儲任何東西,那能否存放圖片地址呢。

<template>
    <div class="bg"></div>
</template>
<script>
    export default{
        mounted(){
           // 第一種方法,圖片地址或base64
           this.$el.style.setProperty('--bg',`url("http://xxx.com/1.jpg")`)
           // 第二種方法
           this.$el.style.setProperty('--bg',`url("${require('../assets/1.png')}")`)
           
        }
    }
</script>    
<style>
 .bg{
     --bg:url('xxx.jpg');
     background-image:--bg;
 }
</style>

個人測試成功,這個方法也可用,而且會比computed更好些,畢竟操作css變量開銷更小。這個方法需要注意的是,css中圖片一般都是寫在url中的,因此需要拼接一個字符串url(你的內容)。

通過css繪制

這個其實算一個題外話,有的時候一些圖像其實是可以通過css畫出來的,例如下圖中這個三角,大家百度一下就會有各種css三角生成器,這種圖形用css會比引入一個圖片更好。

在Vue頁面中怎么更優雅地引入圖片

就是不要在vue的data中引入圖片,還是盡量使用css

關于在Vue頁面中怎么更優雅地引入圖片問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

禹城市| 南投市| 惠来县| 松滋市| 竹北市| 勃利县| 娄烦县| 洛浦县| 安庆市| 唐山市| 海晏县| 广丰县| 曲阳县| 梅州市| 抚顺县| 庆城县| 丘北县| 禄丰县| 龙陵县| 九江县| 玛沁县| 宁河县| 桃源县| 宁强县| 呼图壁县| 库尔勒市| 隆安县| 炉霍县| 麻江县| 美姑县| 电白县| 江北区| 珠海市| 黑龙江省| 开原市| 清水河县| 同仁县| 陆河县| 内丘县| 宁明县| 长兴县|