Vue組件化學(xué)習(xí)之scoped詳解
簡介
主要介紹scoped的作用。
先弄一個(gè)案例:

main.js:
//引入vue依賴
import Vue from 'vue'
//引入組件App
import App from './App.vue'
// 關(guān)閉生產(chǎn)提示
Vue.config.productionTip = false
//創(chuàng)建一個(gè)vue實(shí)例
new Vue({
//這個(gè)目前還沒學(xué)過,先知道他的作用是將app放入容器中。
render: h => h(App),
//配置該vue實(shí)例管理id為app的容器
}).$mount('#app')
App.vue:
<template>
<!-- 編寫結(jié)構(gòu) -->
<div>
<school></school>
<hr>
<student></student>
</div>
</template>
<script>
// 原本的引入
// import school from "./School.vue"
// import student from "./Student.vue"
//修改后的
//引入school組件和student組件,涉及es模塊化的語法
import school from "./components/School.vue"
import student from "./components/Student.vue"
export default {
components:{
//注冊組件
school,
student
}
}
</script>
<style>
</style>
School.vue:
<template>
<!-- 編寫組件結(jié)構(gòu)代碼,也就是html代碼 -->
<!-- 需要一個(gè)div括住,也就是只能有一個(gè)根元素,一般使用div -->
<div class="orange">
<div>學(xué)校:{{schoolName}}</div>
<div>地址:{{schoolAddress}}</div>
</div>
</template>
<script>
//交互代碼編寫的地方,需要暴露出去給其他地方引入
//這個(gè)需要有一點(diǎn)es6模塊化的知識(shí),這里一般使用默認(rèn)暴露,因?yàn)檫@是單文件組件,只需要暴露一個(gè)組件對象,
//并且引入默認(rèn)暴露的組件引入語法比較簡單。
export default {
data() {
return {
schoolName:"尚硅谷",
schoolAddress:"北京"
}
},
}
</script>
<style>
/* 編寫樣式的地方 */
.orange{
background-color: orange;
}
</style>
student.vue:
<template>
<!-- 編寫組件結(jié)構(gòu)代碼,也就是html代碼 -->
<!-- 需要一個(gè)div括住,也就是只能有一個(gè)根元素,一般使用div -->
<div class="orange">
<div>學(xué)生姓名:{{studentName}}</div>
<div>年齡:{{studentAge}}</div>
</div>
</template>
<script>
//交互代碼編寫的地方,需要暴露出去給其他地方引入
//這個(gè)需要有一點(diǎn)es6模塊化的知識(shí),這里一般使用默認(rèn)暴露,因?yàn)檫@是單文件組件,只需要暴露一個(gè)組件對象,
//并且引入默認(rèn)暴露的組件引入語法比較簡單。
export default {
data() {
return {
studentName:"張三",
studentAge:18
}
},
}
</script>
<style>
/* 編寫樣式的地方 */
.orange{
background-color: gray;
}
</style>
效果:

看兩個(gè)組件的樣式代碼,都使用了同名的orange類來設(shè)置樣式,但是一個(gè)設(shè)置背景顏色為橙色,一個(gè)為灰色,父組件App最后會(huì)匯總所有子組件中的樣式,這樣的話,這兩個(gè)樣式設(shè)置就沖突了,所以導(dǎo)致School組件的背景色本來應(yīng)該是橙色的,但是變成灰色了。
所以,引入scoped的作用:使樣式在局部生效,防止沖突。
添加在style標(biāo)簽中的,

結(jié)果:

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue addRoutes實(shí)現(xiàn)動(dòng)態(tài)權(quán)限路由菜單的示例
本篇文章主要介紹了vue addRoutes實(shí)現(xiàn)動(dòng)態(tài)權(quán)限路由菜單的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
解決iview多表頭動(dòng)態(tài)更改列元素發(fā)生的錯(cuò)誤的方法
這篇文章主要介紹了解決iview多表頭動(dòng)態(tài)更改列元素發(fā)生的錯(cuò)誤的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
vue 實(shí)現(xiàn)移動(dòng)端鍵盤搜索事件監(jiān)聽
今天小編就為大家分享一篇vue 實(shí)現(xiàn)移動(dòng)端鍵盤搜索事件監(jiān)聽,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案
這篇文章主要介紹了vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
vxe-table 實(shí)現(xiàn)行高拖拽功能示例詳解
vxe-table實(shí)現(xiàn)行高拖拽功能,需更新到最新版本,通過row-config.resizable和row-resize啟用,多列允許觸發(fā)行高拖拽時(shí),通過row-resize指定任意列,感興趣的朋友跟隨小編一起看看吧2025-01-01
Vue解決echart在element的tab切換時(shí)顯示不正確問題
這篇文章主要介紹了Vue解決echart在element的tab切換時(shí)顯示不正確問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

