You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么React中App函数组件可渲染,小写开头的test组件无法渲染?

React组件首字母大小写渲染差异原因

请问在React中,为什么写一个名为App的函数时,render方法可以正常渲染其返回的HTML内容,但如果换成其它小写开头的函数名比如test就无法渲染?

这是JSX的固有语法约定,React在编译JSX时会严格遵循以下规则判断标签类型:

  • 首字母大写的标签:会被识别为用户自定义的React组件,React会到当前作用域查找对应的函数/类执行,渲染其返回的内容
  • 首字母小写的标签:会被默认识别为浏览器原生DOM元素(如<div>、<span>),React不会到自定义函数作用域查找对应实现

你给出的两个示例的差异也源于此:

  • 写<App />时,React识别到首字母大写,找到你定义的App函数执行,正常渲染返回的内容
  • 写<test />时,React会当作原生HTML的<test>标签处理,但HTML规范中不存在这个原生标签,所以无法渲染出你预期的内容,一般浏览器控制台还会抛出对应的警告提示。

如果需要让小写开头的函数作为组件正常渲染,可以将其赋值给一个首字母大写的变量后再使用,示例如下:

function test() {
    return (
        <div>
            <h1>hello test</h1>
        </div>
    );
}
// 赋值给首字母大写的变量
const Test = test;
ReactDOM.render(<Test />, document.getElementById("root")); // 此时可正常渲染

内容的提问来源于stack exchange,提问作者jon boe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:30:00