028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Vue中使用CSSModules优雅方法

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优雅方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对创新互联网站的支持!


网站名称:Vue中使用CSSModules优雅方法
分享地址:http://www.tsicrk.com/article/gehhic.html

其他资讯

让你的专属顾问为你服务

2.3018s