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

简介: 一、样式表是否只在list组件中生效二、Vue组件中的样式表是否存在冲突问题三、react中是否类似scoped的指令

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

 

目录

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

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

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

 

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

 

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

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

 

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

 

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

//答案:Vue 组建中的样式表,也有冲突的问题;但是,可以使用<style scoped></style>解决冲突问题,因为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 <div>

<hl className="title"">这是评论列表组件</h1>

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

 

{this.state.CommentList.map(item => <CmtItem {...item} key={item.id}></CmtItem>)}

</div>

 }

}

 

 

Cmtlist.css文件:

.title{

Clolor:red;

}

 

h1{

font-style:italic;

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

image.png

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

CmtItem2.jsx文件:

import React from 'react'

 

export default function CmtItem(props){

return <div>

<h1 className=”title”>评论人: {props.user}</h1> //字体变为红色,每个组件都是基于首页来进行呈现,这个类也可以访问到,造成冲突。

<p>评论内容:{props.content}</p>

</div>

}

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

相关文章
|
2月前
|
缓存 前端开发
css使用各类样式表
css使用各类样式表
|
2月前
|
前端开发
vue+ts或者react+ts如何使用animate.css
vue+ts或者react+ts如何使用animate.css
33 0
|
10天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
11天前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
|
12天前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
1月前
|
前端开发 搜索推荐 开发者
CSS不仅使得网页内容的呈现多样化和个性化成为可能,还大大简化了样式表的编写工作
【4月更文挑战第6天】CSS不仅使得网页内容的呈现多样化和个性化成为可能,还大大简化了样式表的编写工作
17 3
|
2月前
|
前端开发
最新版本create-react-app 如何使用css-module
最新版本create-react-app 如何使用css-module
16 0
|
2天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
13 0
HTML5/CSS3粒子效果进度条代码
|
5天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
22 1
|
10天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。