最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue模板內(nèi)引入的組件樣式覆蓋失效原因及解決

 更新時(shí)間:2022年04月26日 11:16:35   作者:whidy  
這篇文章主要介紹了Vue模板內(nèi)引入的組件樣式覆蓋失效原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

模板內(nèi)引入組件樣式覆蓋失效

作為一名剛接觸Vue的菜鳥(niǎo), 開(kāi)發(fā)過(guò)程中遇到一些小坑又很難搜索的到, 還是記錄下來(lái). 分享給有遇到過(guò)類(lèi)似問(wèn)題的人.

Vue項(xiàng)目中假設(shè)用到Vant.js這個(gè)UI庫(kù), 具體引入組件啥的我就不詳細(xì)說(shuō)了, 直接看代碼:

<template>
? <div class="login">
? ? <my-btn type="default">{{msg}}</my-btn>
? </div>
</template>
<script>
import { Button } from 'vant'
export default {
? name: 'App',
? components: {
? ? myBtn: Button
? },
? data() {
? ? return {
? ? ? msg: 'whidy is poor XD'
? ? }
? }
}
</script>
<style scoped>
.van-button {
? width: 600px;
}
.van-button__text {
? font-size: 40px;
}
</style>

以上代碼的寫(xiě)法不仔細(xì)看的話, 通過(guò)頁(yè)面來(lái)看, my-btn組件實(shí)際上是Button, 而Vant的Button會(huì)生成類(lèi)似如下:

<button data-v-0f984ad8="" class="van-button van-button--default van-button--normal"><!----><span class="van-button__text">whidy is poor XD</span></button>

其中的van-button的確寬度變成600px了, 而這個(gè)van-button__text卻沒(méi)有反應(yīng). 似乎一下子就傻眼了. 去掉scoped才有效果, 可是為啥要把這個(gè)作用域去了才行. 這個(gè)不符合我們需求, 因?yàn)檫@樣會(huì)造成全局污染. 我僅僅是想要在這個(gè)頁(yè)面中的按鈕文本字體發(fā)生改變!

問(wèn)題原因

scoped是必不可少的, 但是我寫(xiě)了這個(gè)樣式為何無(wú)法生效? 原因很簡(jiǎn)單, 因?yàn)楫?dāng)前樣式僅適用于當(dāng)前Vue模板的, 而模板中引入的其他組件其實(shí)是無(wú)法被渲染的.

解決方案

因此對(duì)于模板中引入第三方UI框架的樣式如何改寫(xiě), 正確方式是寫(xiě)一個(gè)優(yōu)先級(jí)高于原組件的全局樣式來(lái)覆蓋默認(rèn)樣式, 比如

<my-btn type="default" class="reset">{{msg}}</my-btn>

完整的代碼如下

<template>
? <div class="login">
? ? <my-btn type="default" class="reset">{{msg}}</my-btn>
? </div>
</template>
<script>
import { Button } from 'vant'
export default {
? name: 'App',
? components: {
? ? myBtn: Button
? },
? data() {
? ? return {
? ? ? msg: 'whidy is poor XD'
? ? }
? }
}
</script>
<style scoped>
.van-button {
? width: 600px;
}
</style>
<style>
.reset .van-button__text {
? font-size: 40px;
}
</style>

當(dāng)然這里只是示例, 個(gè)人并不建議在模板上寫(xiě)多個(gè)style塊, 所以我的做法一般還是在assets目錄內(nèi)新建一個(gè)例如resetui.css文件, 專(zhuān)門(mén)存放這些需要被重新修改的樣式代碼. 并且以組件的類(lèi)名來(lái)進(jìn)行維護(hù), 比如上面一段, 最后處理好的代碼應(yīng)該是引入一個(gè)全局resetui.css, 并且該文件內(nèi)的樣式(我用了PostCSS)例如:

.login {
? .van-button__text {
? ? font-size: 40px;
? }
}

這樣就很好的解決了作用域和組件樣式的問(wèn)題了, 因此理解Vue模板和組件之間的作用域也是至關(guān)重要的~

其實(shí)這部分內(nèi)容在官方文檔有寫(xiě), 不過(guò)大部分新手在閱讀文檔后, 并沒(méi)有真正實(shí)踐, 所以也就很容易忽略, 這里簡(jiǎn)單的做了個(gè)總結(jié), 希望大家能夠注意哦~

我其實(shí)也很想能夠做到, 當(dāng)前模版內(nèi)的scoped樣式能夠生效于當(dāng)前模版內(nèi)的所有組件的辦法, 不過(guò)似乎是做不到的? 因此目前還是暫時(shí)按照上面的解決方案處理吧~

參閱: 官方文檔 - Class與Style綁定 - 用在組件上

vue樣式被覆蓋問(wèn)題

在我們引入外部的樣式時(shí),發(fā)現(xiàn)自己無(wú)論如何都改不了外部的樣式,自己的樣式老被覆蓋,究其原因還是我們的 外部樣式放的位置不對(duì)

main.js

我們應(yīng)該在 main.js 的開(kāi)頭引入樣式,這樣的話就不存在覆蓋的問(wèn)題了

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解處理Vue單頁(yè)面應(yīng)用SEO的另一種思路

    詳解處理Vue單頁(yè)面應(yīng)用SEO的另一種思路

    這篇文章主要介紹了詳解處理Vue單頁(yè)面應(yīng)用SEO的另一種思路,本文主要針對(duì) vue 2.0 單頁(yè)面 Meta SEO 優(yōu)化展開(kāi)介紹,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Vue?日期獲取的示例代碼

    Vue?日期獲取的示例代碼

    moment.js是一款現(xiàn)在對(duì)時(shí)間處理的強(qiáng)大的函數(shù),這篇文章主要介紹了Vue?日期獲取的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • vue如何安裝使用Quill富文本編輯器

    vue如何安裝使用Quill富文本編輯器

    這篇文章主要為大家詳細(xì)介紹了vue如何安裝使用Quill富文本編輯器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 詳解Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法

    詳解Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法

    這篇文章主要介紹了Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題

    vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題

    footer為公用組件,其他頁(yè)面都需要引入。接下來(lái)通過(guò)本文給大家分享vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題,需要的朋友可以參考下
    2018-05-05
  • Vue簡(jiǎn)單封裝axios之解決post請(qǐng)求后端接收不到參數(shù)問(wèn)題

    Vue簡(jiǎn)單封裝axios之解決post請(qǐng)求后端接收不到參數(shù)問(wèn)題

    這篇文章主要介紹了Vue簡(jiǎn)單封裝axios之解決post請(qǐng)求后端接收不到參數(shù)問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Vue-cli Eslint在vscode里代碼自動(dòng)格式化的方法

    Vue-cli Eslint在vscode里代碼自動(dòng)格式化的方法

    本篇文章主要介紹了Vue-cli Eslint在vscode里代碼自動(dòng)格式化的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • mpvue小程序仿qq左滑置頂刪除組件

    mpvue小程序仿qq左滑置頂刪除組件

    最近在做小程序開(kāi)發(fā)的時(shí)候,遇到了點(diǎn)問(wèn)題。最終選擇用mpvue來(lái)做,誰(shuí)知這么多坑,下面小編把我遇到的問(wèn)題分享給大家,如果大家對(duì)mpvue小程序仿qq左滑置頂刪除組件相關(guān)知識(shí)感興趣的朋友一起看看吧
    2018-08-08
  • ES6 Proxy實(shí)現(xiàn)Vue的變化檢測(cè)問(wèn)題

    ES6 Proxy實(shí)現(xiàn)Vue的變化檢測(cè)問(wèn)題

    Vue3.0將采用ES6 Proxy的形式重新實(shí)現(xiàn)Vue的變化檢測(cè),在官方還沒(méi)給出新方法之前,我們先實(shí)現(xiàn)一個(gè)基于Proxy的變化檢測(cè)。感興趣的朋友跟隨小編一起看看吧
    2019-06-06
  • Vue 根據(jù)條件判斷van-tab的顯示方式

    Vue 根據(jù)條件判斷van-tab的顯示方式

    這篇文章主要介紹了Vue 根據(jù)條件判斷van-tab的顯示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08

最新評(píng)論

左贡县| 治多县| 新邵县| 赤峰市| 宕昌县| 长白| 镇江市| 铅山县| 江永县| 松阳县| 深州市| 建昌县| 梅河口市| 岑溪市| 平谷区| 隆子县| 岑巩县| 凤冈县| 虹口区| 佛坪县| 伽师县| 花莲县| 什邡市| 凌源市| 乌鲁木齐县| 手游| 澜沧| 鄂伦春自治旗| 池州市| 南平市| 汝阳县| 淳安县| 同德县| 周至县| 鹿泉市| 革吉县| 合水县| 荔波县| 江油市| 商洛市| 兴城市|