首頁  >  問答  >  主體

javascript - vue單一文件style裡scoped無效,求指教原因。

a.vue

#
<template>
    <p>
        <button class="btn btn-primary">11a.vue</button>
    </p>
</template>
<style scoped>
    @import '../css/bootstrap.css';
    
</style>

b.vue

#
<template>
    <p>
        <button class="btn btn-primary">b.vue</button>
    </p>
</template>
<style scoped>
    
</style>

但是在訪問b.vue的時候卻附帶了boostrap的樣式,scoped沒起隔離作用域的效果?

#
仅有的幸福仅有的幸福2685 天前1164

全部回覆(3)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-19 10:29:37

    我猜啊,是@import的原因

    首先我們來看看vue-loader的scoped的原理:
    https://vue-loader.vuejs.org/...

    b頁面帶有bootstrap的樣式只能說明bootstrap的css沒有經過vue-loader處理,然後我又去搜了以下postcss和@import關鍵字,然後發現了postcss-import插件:
    https://www. npmjs.com/package...

    我覺得你把這個插件用上的話應該可以解決問題,但我沒測試,純屬猜測

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:29:37

    你找下b的父級頁面,一級一級往上找,一定是那個頁面引用了

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:29:37

    @import '../css/bootstrap.css';去掉;
    换成<style src="../css/bootstrap.css" scoped></style>就好了

    回覆
    0
  • 取消回覆