房地产手机网站模板,手机网址进不去怎么设置,网站快速收录教程,hello外贸人才网在 Vue.js 中#xff0c;scoped 是一个非常有用的特性#xff0c;允许你将样式限制在当前组件的作用域内#xff0c;避免样式泄漏到其他组件。它是通过 Vue 的单文件组件#xff08;.vue 文件#xff09;中的 style 标签实现的。 目录 案例演示创建多个vue文件如何… 在 Vue.js 中scoped 是一个非常有用的特性允许你将样式限制在当前组件的作用域内避免样式泄漏到其他组件。它是通过 Vue 的单文件组件.vue 文件中的 style 标签实现的。 目录 案例演示创建多个vue文件如何处理类名样式冲突不适合用scoped的组件App.vue 总结scoped 的基本使用工作原理scoped 的局限性作用范围组合与嵌套 注意事项注意事项常见问题和解决方案 案例演示
创建多个vue文件 在效果演示前分别创建两个vue文件同时在App.vue中进行引用。 Home.vue
templatediv classtest1h1定位{{ address}}/h1h1详细{{ detailAddress }}/h1/div/templatescriptexport default {name: Company,data() {return {detailAddress: 生态科技园,address: 广东省深圳市南山区,};},methods:{test(){this.hello();},},};/scriptstyle.test1{background: blue;border: 10px solid red;}
/styleStaff.vue
templatediv classtest2h1用户名{{ name }}/h1h1性别{{ sex }}/h1/div
/templatescript
export default {name: Staff,data() {return {name: 摔跤猫子,sex: 男,};}
};
/scriptstyle.test2{background: pink;border: 10px dotted green;}
/styleApp.vue
templatediv idappStaffVue /Home //div
/templatescript
import StaffVue from ./components/Staff.vue
import Home from ./components/Home.vue
export default {name: App,components: {StaffVue,CompanyVue,Home}
}
/script启动项目后页面效果如下图所示因为两个不同的vue文件中分别使用了不同的css样式以及不同的class名称所以其样式各自独立并不冲突。 将Home.vue中的class类名修改为test2与Staff.vue文件保持一致后再次刷新页面。 这时可以看到在没有修改样式内容只修改了class类名的前提下Home.vue的样式已经与Staff.vue的样式达到了一样的效果当多个vue文件在一起时就很容易出现类名冲突的问题。 两个不同的vue文件中class都是test2为什么样式效果是渲染Staff.vue中css样式而不是Home.vue中的? 这是因为在App.vue中是先引用的Home.vue再引用的Staff.vue后面的vue文件会把前面的给覆盖掉。 如果将两者的顺序调整一下先引用Staff.vue再引用Home.vue即以Home.vue中的样式为主。脚手架在解析App.vue文件的时候先扫描的是引入的文件然后再读取配置项最后才解析模板。 如何处理类名样式冲突 当组件较少时也许可以通过使用不同的类名来解决这个问题但终究不是长久之计也不太现实。只需要在style标签中增加scoped即可scope翻译就有范围的意思。给这个style标签增加了scoped标记也就意味着其样式只作用于当前vue结构中对其进行限制。 在页面右键检查就可以看到它是给最外层的div增加了一个特殊的标签属性并拼接了一个随机生成的值每次运行这个值可能都不一样通过这种方式就完成了控制指定的div。 不适合用scoped的组件App.vue 在 Vue.js 项目中App.vue 文件是应用的根组件它是整个 Vue 应用的入口组件。通常App.vue 作为最上层的组件负责渲染并展示其他子组件。它通常用于配置应用的基本结构、路由、状态管理例如 Vuex等全局功能。 在App.vue中定义样式如下同时修改其他vue文件中的class类名。
style .title{font-size: 30px;color: white;font-family: Courier New, Courier, monospace;}
/style其他vue组件
h1 classtitle用户名{{ name }}/h1得到效果如下图位于App.vue组件中的样式能够全局作用到其他组件。如果在App.vue组件中使用了scoped则该样式只能作用于其本身组件中对应的类名标签上。 总结
scoped 的基本使用
templatediv classmy-componentpThis is a scoped style example./p/div
/templatescript
export default {name: MyComponent
};
/scriptstyle scoped
.my-component {background-color: lightblue;
}p {color: green;
}
/style
工作原理 在 Vue 的 style scoped 中Vue 会自动为该组件的 CSS 选择器添加一个特殊的属性选择器这样这些样式只会应用于当前组件的 DOM 元素。 例如Vue 会为 .my-component 类生成一个独特的属性选择器比如 data-v-xxxxxx并在 DOM 元素上添加这个属性。然后样式将仅适用于当前组件的根节点或具有该属性的元素。 例如以上代码经过 Vue 编译后生成的 CSS 可能会类似于
.my-component[data-v-123abc] {background-color: lightblue;
}p[data-v-123abc] {color: green;
}scoped 的局限性
全局样式scoped 只影响当前组件的样式。如果你需要全局样式scoped 不适用。可以使用 style 标签而不加 scoped或者使用外部的 CSS 文件。深度选择器有时你需要为子组件中的元素应用样式但 scoped 仅作用于当前组件。如果要跨组件的深度嵌套应用样式可以使用 ::v-deep也叫 或 /deep/。
例如
style scoped
.parent-class ::v-deep .child-class {color: red;
}
/style或者使用 /deep/这种写法是 Vue 2.x 的
style scoped
.parent-class /deep/ .child-class {color: red;
}
/style作用范围 scoped 样式仅限于当前组件它不会影响其他组件的样式。它的作用是将 CSS 样式限制在该组件的 DOM 元素内部从而避免全局样式的冲突。 组合与嵌套 可以将多个 scoped 样式放在同一个 style 标签中Vue 会自动确保这些样式局部化。 templatediv classmy-componentpThis is scoped./pbutton classbtnClick Me/button/div
/templatestyle scoped
.my-component {color: blue;
}.my-component p {font-size: 14px;
}.my-component .btn {background-color: red;color: white;
}
/style注意事项
注意事项
scoped 和 import如果你在 scoped 样式中使用了 import 导入外部 CSS 文件这些外部文件的样式会应用到全局而不会被限制在当前组件的作用域内。为了避免全局污染尽量避免在 scoped 样式中使用全局 import。scoped 不适用 JavaScript 变量scoped 样式只针对 CSS 有效而不支持 JavaScript 动态变量。需要动态样式时可以使用 Vue 的动态绑定样式v-bind:style和类v-bind:class功能。
常见问题和解决方案
样式覆盖问题当子组件的样式需要覆盖父组件时可以使用 ::v-deep 或 /deep/ 来确保样式的覆盖。多个 scoped 样式冲突如果两个组件的 scoped 样式相互冲突可以通过更改 CSS 的选择器来避免。例如可以使用更具体的选择器来确保某个组件样式不会被其他组件覆盖。 文章转载自: http://www.morning.dnvhfh.cn.gov.cn.dnvhfh.cn http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.trlhc.cn.gov.cn.trlhc.cn http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.mswkd.cn.gov.cn.mswkd.cn http://www.morning.jnhhc.cn.gov.cn.jnhhc.cn http://www.morning.leeong.com.gov.cn.leeong.com http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.gjsjt.cn.gov.cn.gjsjt.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.rglp.cn.gov.cn.rglp.cn http://www.morning.qcdhg.cn.gov.cn.qcdhg.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.jlthz.cn.gov.cn.jlthz.cn http://www.morning.nlkhr.cn.gov.cn.nlkhr.cn http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn http://www.morning.fstdf.cn.gov.cn.fstdf.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.vattx.cn.gov.cn.vattx.cn http://www.morning.ydwnc.cn.gov.cn.ydwnc.cn http://www.morning.lbqt.cn.gov.cn.lbqt.cn http://www.morning.wfhnz.cn.gov.cn.wfhnz.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.swkzk.cn.gov.cn.swkzk.cn http://www.morning.stlgg.cn.gov.cn.stlgg.cn http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn http://www.morning.lrgfd.cn.gov.cn.lrgfd.cn http://www.morning.gtqx.cn.gov.cn.gtqx.cn http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.lxhny.cn.gov.cn.lxhny.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.npfrj.cn.gov.cn.npfrj.cn http://www.morning.htbbp.cn.gov.cn.htbbp.cn http://www.morning.kwpnx.cn.gov.cn.kwpnx.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.ndmbd.cn.gov.cn.ndmbd.cn http://www.morning.zrdhd.cn.gov.cn.zrdhd.cn http://www.morning.rwlnk.cn.gov.cn.rwlnk.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.rnmc.cn.gov.cn.rnmc.cn http://www.morning.lflsq.cn.gov.cn.lflsq.cn http://www.morning.rdlxh.cn.gov.cn.rdlxh.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.hgsylxs.com.gov.cn.hgsylxs.com http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.jfmyt.cn.gov.cn.jfmyt.cn http://www.morning.nkkr.cn.gov.cn.nkkr.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn http://www.morning.qnksk.cn.gov.cn.qnksk.cn http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.btgxf.cn.gov.cn.btgxf.cn http://www.morning.lwwnq.cn.gov.cn.lwwnq.cn http://www.morning.dbphz.cn.gov.cn.dbphz.cn http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.rtlg.cn.gov.cn.rtlg.cn http://www.morning.dkslm.cn.gov.cn.dkslm.cn