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

关于React中return内HTML与JS语法规则的疑问

关于React JSX中{}使用的疑问解答

你搞混了两个完全不同的语法场景,拆解清楚就明白了:

  • 为什么{}里的<li>不用``包裹?
    JSX本身就是JavaScript的语法扩展,你写的<li>根本不是HTML字符串,而是React.createElement('li', null, ...)的语法糖。在JSX的{}里,你可以直接放合法的JavaScript表达式——包括JSX元素(本质是React.createElement的调用结果)。比如:

    {
      // 这里是JS表达式,直接返回JSX元素
      [1,2,3].map(num => <li key={num}>{num}</li>)
    }
    

    这里的<li>是JS对象(React元素),不是字符串,自然不需要用模板字符串``包裹。

  • 为什么p.name要写成${p.name}?
    你说的${p.name}是JavaScript的模板字符串语法,只有当你在``(反引号)包裹的字符串里插入变量时才需要用它。比如在原生JS里拼接HTML字符串:

    // 原生JS用字符串拼HTML,才需要${}插变量
    const htmlStr = `<li>${p.name}</li>`;
    

    但在JSX里,你根本不需要这么做——直接在<li>里用{p.name}就行,这是JSX嵌入JS变量的语法,和模板字符串的${}没关系。

总结一下:JSX里的{}是用来嵌入JS表达式的,表达式可以是JSX元素、变量、函数调用等;而${}是JavaScript模板字符串的变量插入语法,只有在写字符串的时候才用,和JSX的<>语法完全是两码事。

内容的提问来源于stack exchange,提问作者Romi Tsimerman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:25:33