演示 React 中使用普通 css 样式表的作用域冲突问题|学习笔记

简介: 快速学习演示 React 中使用普通 css 样式表的作用域冲突问题

开发者学堂课程【React 入门与实战演示 React 中使用普通 css 样式表的作用域冲突问题】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8111


演示 React 中使用普通 css 样式表的作用域冲突问题


目录

一、样式表是否只在 list 组件中生效

二、Vue 组件中的样式表是否存在冲突问题

三、react 中是否类似 scoped 的指令


一、样式表是否只在 list 组件中生效

//问题:这个样式表是只在 list 组件中生效嘛?

//经过实验发现,直接导入 css 样式表,默认的是在全局上,整个项目都生效的!


二、Vue 组件中的样式表是否存在冲突问题

//思考:Vue 组件中的样式表,有没有冲突的问题?

//答案:Vue 组建中的样式表,也有冲突的问题;但是,可以使用解决冲突问题,因为 scoped 会给组件中间所有样式加上前缀,前缀给它提供了作用域。

 

三、react 中是否类似 scoped 的指令

//疑问:react 中,有没有类似 scoped 这样的指令呢?

//答案:没有,因为在 react 中根本没有指令概念;

import cssobj from “@/css/cmtlist.css”

//import 对象来接收,再用 from 给它一个路径。

只要在任何组件中用到样式表,那么它默认在全局在整个项目的宏观的角度上有一个.title 的一个类。

import React from “react”

//导入列表组件需要的样式表

console.log(cssobj);  

//是一个空对象,因为它没有相对暴露任何成员,存在样式冲突

//导入评论项组件

import CmtItem from “@/ components/CmtItem2” 

//此文件中写的js代码,要导入,又要接收,在对应文件中要用 export 用一些成员

export default class CmtList extends React.Component{

constructor(){

super()

this.state = {

Commentlist: [//评论列表数据

{ id: 1,user:”张三”, content:‘哈哈,沙发’}

{ id: 2, user:”李四”,content:”哈哈,板凳”}

{ id: 3,user:“王五”, content: “哈哈,凉席”}

{ id: 4,user:‘'赵六” , content:”哈哈,砖头”}

{ id: 5,user:”田七”, content: “哈哈,楼下山炮”}

]

}

}

render() {

return

这是评论列表组件

//可以用 list 测试当前 list 组件有没有h1标签,Item 里有没有 h1标签

{this.state.CommentList.map(item => )}

}

}

Cmtlist.css文件:

.title{

Clolor:red;

}

h1{

font-style:italic;

}  

//因为样式表没有模块的作用域

image.png

文字倾斜证明并不是局部生效,是全局生效

CmtItem2.jsx文件:

import React from 'react'

export default function CmtItem(props){

return

评论人: {props.user}

//字体变为红色,每个组件都是基于首页来进行呈现,这个类也可以访问到,造成冲突。

评论内容:{props.content}

}

//js 样式表有独立作用域

相关文章
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
409 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
212 11
|
前端开发
create-react-app 如何使用 less/sass 和 react-css-modules?
本文详细介绍了在 create-react-app 项目中如何使用 less/sass 和 react-css-modules 来管理和应用样式。首先,通过安装相应依赖并配置 webpack 支持 less/sass;接着,介绍如何使用这些预处理器编写样式;最后,讲解了如何配置和使用 react-css-modules 实现样式的模块化管理,以及如何结合使用 less/sass 和 react-css-modules 提高开发效率和代码质量。
312 3
|
前端开发 开发者 容器
CSS 变量的作用域是什么?
【10月更文挑战第28天】理解CSS变量的作用域规则对于有效地使用CSS变量来组织和管理页面样式非常重要。通过合理地利用全局作用域和局部作用域,以及掌握变量的覆盖和继承规则,可以创建更具可维护性、灵活性和可扩展性的CSS样式表,实现各种复杂的页面设计和样式需求。
|
前端开发 JavaScript
React Tailwind CSS
10月更文挑战第12天
308 1
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
691 1
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
前端开发 容器
React 使用 CSS 样式
10月更文挑战第12天
164 0
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
314 0