提问者:小点点

在React类呈现函数中使用<divclassname=“app”>的目的是什么?


我是React的新手,到目前为止,我理解React jsx中的className可以是对导入css文件中定义的html类的引用。像下面示例中的classname=“warning”,它使文本显示红色,而不是默认的黑色。

但我也看到,在许多教程示例中,像这样的元素出现在render()函数的顶部。这通常不会引用导入的css文件中的任何内容,但即使示例中根本没有导入的css文件,它也经常会出现。

实际上,我发现,如果只使用

替换它,则示例的呈现方式与前面完全相同。那么,像这样的元素是做什么的,它们是用来做什么的呢?

应用程序JS

import React, { Component } from 'react';
import './App.css';

class App extends Component {
    render() {
        return (
            <div className="App">
                <h1 className="warning">Wakeup World!</h1>
            </div>
        )
    }
}

export default App;

app.css

.warning {
    color: red
}

共2个答案

匿名用户

我相信这只是一个惯例,它不涉及React的内部渲染逻辑或类似的东西。

为了回答您关于它们为什么会出现的问题,我们需要对HTMLbody进行更具体的全局样式更改。同样,一个你可以随意忽略的约定。

来源:https://reactjs.org/docs/rendering-elements.html及相关文档

匿名用户

的目的不是别的,而是使用app作为类呈现

。如果没有链接到该类名的样式,那么在更改它时将得到相同的结果。

由于React没有正式的命名约定,所以没有任何正式文档说明第一个元素必须是包含类app

我猜这已经成了某种潜规则了。

甚至Facebooks create-react-app也使用app作为第一个元素。(资料来源)

然而,React的井字游戏教程并没有使用app作为第一个元素,而是使用,这样会更有意义。