千家信息网

react组件中如何设置DOM样式

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下react组件中如何设置DOM样式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、行内样式想给虚拟do
千家信息网最后更新 2026年11月02日react组件中如何设置DOM样式

小编给大家分享一下react组件中如何设置DOM样式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、行内样式

想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现
行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方
例如:render函数里、组件原型上、外链js文件中
注意:这里的两个括号,第一个表示我们在要JSX里插入JS了,第二个是对象的括号

Hello world

2、使用class

React推荐我们使用行内样式,因为React觉得每一个组件都是一个独立的整体

其实我们大多数情况下还是大量的在为元素添加类名,但是需要注意的是,class需要写成className(因为毕竟是在写类js代码,会收到js规则的现在,而class是关键字)

import React, { Component } from 'react'1. 外部引入定义的样式import styles from './style.css'class ClassStyle extends Component {  render() {    // js逻辑    let className = cx({      font: false    })    return (      <>        
hello

样式

world <> ) }}export default ClassStyle

3、classNames不同的条件添加不同的样式

有时候需要根据不同的条件添加不同的样式,比如:完成状态,完成是绿色,未完成是红色。那么这种情况下,我们推荐使用classnames这个包:
目的:
由于react原生动态添加多个className会报错

import style from './style.css'

想要得到最终渲染的效果是:

下载安装

npm i -S classnames

使用

import classnames from 'classnames'

4、css-in-js

styled-components是针对React写的一套css-in-js框架,简单来讲就是在js中写css。npm链接

  • 传统的前端方案推崇"关注点分离"原则,HTML、CSS、JavaScript 应该各司其职,进行分离。

  • 而在react项目中,更提倡组件化方案,自然形成了将HTML、CSS、JavaScript集中编写管理的方式。

styled-components 应该是CSS-in-JS最热门的一个库,通过styled-components,你可以使用ES6的标签模板字符串语法,为需要styled的Component定义一系列CSS属性,当该组件的JS代码被解析执行的时候,styled-components会动态生成一个CSS选择器,并把对应的CSS样式通过style标签的形式插入到head标签里面。动态生成的CSS选择器会有一小段哈希值来保证全局唯一性来避免样式发生冲突。

1.安装

npm i -S styled-components

定义样式
2.样式js文件

import styled from 'styled-components'const Title = styled.div`    color:red;    font-size:16px;    h4{        color:blue;        font-size:20px;    }`export {    Title}

显示
就像使用常规 React 组件一样使用 Title

import React, { Component } from 'react'import { Title } from './Styles'class App extends Component {render() {    return (        
我只是一个标题 <h4>你好世界</h4>
); }}export default App

3.样式继承
样式

import styled from 'styled-components'const Button = styled.button`    font-size: 20px;    border: 1px solid red;    border-radius: 3px;`;// 一个继承 Button 的新组件, 重载了一部分样式const Button2 = styled(Button)`    color: blue;    border-color: yellow;`;export {    Button,    Button2}

显示

import React, { Component } from 'react'import {Button,Button2} from './Styles'class App extends Component {render() {    return (    
我是一个按钮2
);}}export default App

4.属性传递
样式

import styled from 'styled-components'const Input = styled.input`    color: ${props => props.inputColor || "blue"};    border-radius: 3px;`;export {    Input}

显示

import React, { Component } from 'react'import { Input } from './Styles'class App extends Component {render() {    return (    
);}}export default App

以上是"react组件中如何设置DOM样式"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

样式 组件 不同 对象 动态 标签 篇文章 代码 内容 属性 情况 括号 按钮 文件 方式 方案 条件 推荐 生成 选择 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 广州淘业互联网络科技 哈尔滨大商圈互联网科技有限公司 互联网科技活动banner 盈实互联网科技 互联网扶贫科技 互联网络科技有限公司 互联网 科技创新 互联网科技媒体 北京禾田雨橡互联网科技 互联网金融和金融科技 科技类的互联网平台 湖南一路畅行互联网科技 米聚互联网科技南京有限公司排面 互联网科技研发水平 有人说阿里系是互联网科技企业 昆明中奇联合互联网科技 北京天晋互联网科技有限公司 数字科技和互联网金融哪个好 宁波允成互联网科技有限公司 广州善班互联网科技 广州市恰铎互联网科技有限公司 元气玛特互联网科技公司是外包吗 互联网金融科技公司的优势 本届互联网大会上的黑科技 互联网科技包装股份有限公司上市 广州三三互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网科技企业文化 互联网 科技节活动 微视频大赛
0