Introduction to seven methods of using css in react (with code)

不言
Release: 2019-03-30 11:44:23
forward
3077 people have browsed it

This article brings you an introduction to seven methods of using CSS in react (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

The first one: Use the style directly in the component

No need for the component to import css files from the outside, just write it directly in the component.

import React, { Component } from "react";

const div1 = {
  width: "300px",
  margin: "30px auto",
  backgroundColor: "#44014C",  //驼峰法
  minHeight: "200px",
  boxSizing: "border-box"
};

class Test extends Component {
  constructor(props, context) {
    super(props);
  }
 
  render() {
    return (
     <div>
       <div>123</div>
       <div>
     </div>
    );
  }
}

export default Test;<p> Notes: <br>1. In normal css, such as background-color, box-sizing and other attributes, the attributes in the style object p1 must be converted into camel case, backgroundColor, boxSizing . Properties without hyphens, such as margin, width, etc., remain unchanged in the style object. <br>2. In normal css, the value of css does not need to be quoted in double quotes (""), such as </p>
<pre class="brush:php;toolbar:false">.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}
Copy after login

3. You cannot directly use strings to write style, and an error will be reported

<div>
<p><img src="https://img.php.cn/upload/image/171/466/819/1553917250154517.png" title="1553917250154517.png" alt="Introduction to seven methods of using css in react (with code)"></p>
<p>When using the style object in react. Values ​​must be enclosed in double quotes. </p>
<p>This method of react style only applies to the current component. </p>
<p style="white-space: normal;">Second: Introduce the [name].css file into the component</p>
<p>You need to use import at the beginning of the current component to introduce the css file. </p>
<pre class="brush:php;toolbar:false">import React, { Component } from "react";
import TestChidren from "./TestChidren";
import "@/assets/css/index.css";

class Test extends Component {
  constructor(props, context) {
    super(props);
  }
 
  render() {
    return (
      <div>
        <div>123</div>
        <testchidren>测试子组件的样式</testchidren>
      </div>

    );
  }
}

export default Test;
Copy after login

The css styles introduced in this way will apply to the current component and all its descendant components.

Third method: 3. Introduce the [name].scss file into the component

React already supports files with the suffix scss, so you only need to install node -sass is enough, because with node-sass, scss files can be compiled into css files in the node environment.

>yarn add node-sass
Copy after login

Then write the scss file

//index.scss
.App{
  background-color: #282c34;
  .header{
    min-height: 100vh;
    color: white;
  }
}
Copy after login

For details on how to use sass, please check the sass official website

The css style introduced in this way will also affect The current component and all its descendant components.

Fourth method: Introduce the [name].module.css file into the component

Introduce the css file as a module. All css in this module only Acts on the current component. Does not affect descendant components of the current component.

import React, { Component } from "react";
import TestChild from "./TestChild";
import moduleCss from "./test.module.css";

class Test extends Component {
  constructor(props, context) {
    super(props);
  }  
 
  render() {
    return (
     <div>
       <div>321321</div>
       <testchild></testchild>
     </div>
    );
  }
}

export default Test;
Copy after login

This method can be seen as an upgraded version of the first method of using style in components. Completely separate css and components without affecting other components.

The fifth way: introduce the [name].module.scss file into the component

Similar to the fourth way, the difference is that the fourth way introduces the css module, and This is just introducing the scss module.

import React, { Component } from "react";
import TestChild from "./TestChild";
import moduleCss from "./test.module.scss";

class Test extends Component {
  constructor(props, context) {
    super(props);
  }  
 
  render() {
    return (
     <div>
       <div>321321</div>
       <testchild></testchild>
     </div>
    );
  }
}

export default Test;
Copy after login

The same method can be regarded as an upgraded version of the first method of using style in components.

Sixth: Using styled-components

You need to install

>yarn add styled-components
Copy after login

first and then create a js file (note that it is a js file, not a css file )

//style.js
import styled, { createGlobalStyle } from "styled-components";

export const SelfLink = styled.p`
  height: 50px;
  border: 1px solid red;
  color: yellow;
`;

export const SelfButton = styled.p`
  height: 150px;
  width: 150px;
  color: ${props => props.color};
  background-image: url(${props => props.src});
  background-size: 150px 150px;
`;
Copy after login

Use styled-components style in components

import React, { Component } from "react";

import { SelfLink, SelfButton } from "./style";

class Test extends Component {
  constructor(props, context) {
    super(props);
  }  
 
  render() {
    return (
     <div>
       <selflink>app.js</selflink>
       <selfbutton>
          SelfButton
        </selfbutton>
     </div>
    );
  }
}

export default Test;
Copy after login

This method is to merge the entire css style and html node into one component. Introducing this component has both html and css.
The advantage is that you can dynamically change the style at any time by uploading attributes to the component. It is more convenient for processing variables, media queries, pseudo-classes, etc.

This method of css is only valid for the current component.

For specific usage, please check the styled-components official website

Seventh method: Use radius

You need to install it first

>yarn add radium
Copy after login

and then Directly introducing and using

import React, { Component } from "react";
import Radium from 'radium';

let styles = {
  base: {
    color: '#fff',
    ':hover': {
      background: '#0074d9'
    }
  },
  primary: {
    background: '#0074D9'
  },
  warning: {
    background: '#FF4136'
  }
};

class Test extends Component {
  constructor(props, context) {
    super(props);
  }  
 
  render() {
    return (
     <div>
      <button>
        this is a primary button
      </button>
     </div>
    );
  }
}

export default Radium(Test);
Copy after login

in react components is inconvenient for processing variables, media queries, pseudo-classes, etc.

Using Radium, you can directly handle variables, media queries, pseudo-classes, etc., and you can directly use mathematics, connections, regular expressions, conditions, functions, etc. in js.

Please check the official website of radius for specific usage

Note:Before exporting, it must be wrapped with Radium.

This article has ended here. For more other exciting content, you can pay attention to the CSS Video Tutorial column of the PHP Chinese website!

The above is the detailed content of Introduction to seven methods of using css in react (with code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Previous article:CSS implementation based on user scrolling application (code) Next article:Introduction to the working process of CSS (picture and text)
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Latest Issues
Related Topics
More>
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template