在Vue 3的CSS中使用v-bind綁定JS變量報(bào)not defined

【框架】Vue 3.2.38 +?ant-design-vue 3.2.12 + less 4.1.3

聽說Vue 3可以在CSS里面使用JS變量,剛好項(xiàng)目里面需要用到,二話不說,決定嘗嘗鮮。

但是在使用的時(shí)候卻遇到一個(gè)問題,代碼是按照官方示例寫的,但是一直沒效果,打開控制臺(tái)查看顯示 xxx is not defined。

報(bào)錯(cuò)圖

反復(fù)檢查了代碼,確認(rèn)變量已經(jīng)在JS里面定義了,而且代碼寫的也沒問題,于是又上網(wǎng)查找其他答案。有的說是需要在<style>標(biāo)簽里面用vars定義,再在CSS里面使用,但這個(gè)是舊的寫法,新的Vue版本已經(jīng)不支持。有的說是less跟less-loader的版本沖突問題,不過卸掉重裝也不行。我也想過是不是less語(yǔ)言或者scope作用域的問題,但是單純?cè)?lt;style>里面調(diào)用也不成功。

然后又繼續(xù)查找,最后終于通過在控制臺(tái)里面查看元素發(fā)現(xiàn)了端倪,那就是因?yàn)槲沂窃?lt;a-modal>里面使用變量,而<a-modal>默認(rèn)是掛載到<body>的最外層,跟<div id="app">同級(jí),也就是說,使用變量的地方已經(jīng)超出了Vue的作用域范圍,所以引用不到。

【解決方法】將<a-modal>掛載到<div id="app">之內(nèi)就行。

真是幾經(jīng)波折,想破腦袋呀。不過有時(shí)就是這樣,當(dāng)前的問題并不是由當(dāng)前的事情引起的,而是因?yàn)槠渌蛩鶎?dǎo)致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容