千家信息网

react组件中如何设置DOM样式

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下react组件中如何设置DOM样式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、行内样式想给虚拟do
千家信息网最后更新 2025年11月15日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样式"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0