样式污染问题

在react中,如果有相同的样式类名,但是里面的样式不一样,则会导致下面的组件会把上面的组件样式污染,解决这个问题又很多方法

第一种:less嵌套

第二种:探讨

我们假设要实现这样一个效果

然后两个组件使用了相同的类名,如下图:

 

在组件中引用
import React,{Component} from 'react';
import Hello from './components/Hello'
import Welcome from './components/Welcome'
export default class App extends Component{
  render(){
    return (
      <div>
        <Hello/>
        <Welcome/>
      </div>
    )
  }
}

查看效果:

 

 我们发现welcome组件的样式将Hello组件的样式给污染了

解决问题:

将index.css改成index.module.css,将样式文件转换成一个模板文件
import hello from './index.module.css'
import { Component } from 'react'
export default class Welcome extends Component{
  render() {
    return (
      <div className={hello.title}>Hello</div>
    )
  }
}

效果:

 

一般我们很少用这种方法,基本上less样式嵌套之类的可以解决,只是想让大家知道有这种方法

还记得看webpack视频时候,有句话,万物皆可模块化

 

posted @ 2021-11-19 16:33  一江春水向东刘小姐  阅读(402)  评论(0编辑  收藏  举报