十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
CSS Modules:局部作用域 & 模块化
成都创新互联致力于成都网站设计、做网站,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联,就选择了安全、稳定、美观的网站建设服务!
CSS Modules 为每一个局部类赋予全局唯一的类名,这样组件样式间就不会相互影响了。如:
/* button.css */ .button { font-size: 16px; } .mini { font-size: 12px; }
它会被转换为类似这样:
/* button.css */ .button__button--d8fj3 { font-size: 16px; } .button__mini--f90jc { font-size: 12px; }
当导入一个 CSS 模块文件时,它会将局部类名到全局类名的映射对象提供给我们。就像这样:
import styles from './button.css' // styles = { // button: 'button__button--d8fj3', // mini: 'button__mini--f90jc' // } element.innerHTML = ''
vue-css-modules :简化类名映射
下面是一个使用了 CSS Modules 的按钮组件:
的确,CSS Modules 对于 Vue 组件是一个不错的选择。但也存在以下几点不足:
对于上面的按钮组件,使用 vue-css-modules 后:
现在:
修饰符
@button
这等同于:
这让你能在外部重置组件的样式:
.form [data-component-button] { font-size: 20px; }
$type
这等同于:
:mini
这等同于:
disabled=isDisabled
这等同于:
使用方法
在 Vue 模板中使用
引入模板外部的 CSS 模块
使用模板内部的 CSS 模块
在 Vue JSX 中使用
import CSSModules from 'vue-css-modules' import styles from './button.css' export default { mixins: [CSSModules(styles)], props: { mini: Boolean }, render() { return ( ) } }
在 Vue 渲染函数中使用
import CSSModules from 'vue-css-modules' import styles from './button.css' export default { mixins: [CSSModules(styles)], props: { mini: Boolean }, render(h) { return h('button', { styleName: '@button :mini' }, '点我') } }
总结
以上所述是小编给大家介绍的Vue 中使用 CSS Modules优雅方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对创新互联网站的支持!