演示 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 样式表有独立作用域

相关文章
|
17天前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
17天前
|
前端开发 开发者 容器
CSS 变量的作用域是什么?
【10月更文挑战第28天】理解CSS变量的作用域规则对于有效地使用CSS变量来组织和管理页面样式非常重要。通过合理地利用全局作用域和局部作用域,以及掌握变量的覆盖和继承规则,可以创建更具可维护性、灵活性和可扩展性的CSS样式表,实现各种复杂的页面设计和样式需求。
|
1月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
96 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
1月前
|
前端开发 JavaScript
React Tailwind CSS
10月更文挑战第12天
9 1
|
1月前
|
前端开发 容器
React 使用 CSS 样式
10月更文挑战第12天
28 0
|
2月前
|
前端开发 容器
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等,解释了这些属性在弹性盒子布局中的作用和用法。
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
2月前
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
57 0
|
3月前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
55 0
|
3月前
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
162 0