三、大括号语法

1. 放在标签之间(渲染内容)

用于在页面上展示动态的文本或嵌套的组件。

用法 示例 说明
放变量 <h1>{userName}</h1> 直接渲染变量值
放表达式 <p>{100 + 50}</p> 先计算表达式,再渲染结果
放函数调用 <span>{getFullName()}</span> 渲染函数的返回值
放条件判断 <div>{isLoggedIn ? '欢迎' : '请登录'}</div> 使用三元运算符或 &&
放数组(列表渲染) <ul>{list.map(item => <li>{item.name}</li>)}</ul> 遍历数组生成列表

2. 放在标签属性中(动态传值)

用于动态给组件或 HTML 标签传递属性(除了字符串字面量,其他都必须用大括号)。

  • 动态绑定变量<img src={userAvatar} />
  • 动态绑定布尔值<button disabled={isSubmitting}>提交</button>
  • 动态绑定事件<button onClick={handleClick}>点击</button>
  • 动态绑定对象(内联样式)<div style={``{ color: 'red' }}>文本</div>(注意这里是双大括号)
  • 传递子组件<Layout header={<Header />} />

3. 作为对象字面量的一部分

当属性需要接收一个对象时,外层 {} 表示这是 JS 代码,内层 {} 表示这是一个 JS 对象。

  • 内联样式<div style={``{ fontSize: '16px', marginTop: '10px' }} />
  • 传递复杂配置<Chart data={``{ labels: ['A', 'B'], values: [1, 2] }} />

二、使用误区

大括号里只能放能「算出一个结果」的表达式,不能放用来控制流程的语句。

  • ❌ 不能放 if...else{if (a > b) return '大'}(错误!)
  • ❌ 不能放 for / while 循环:{for(let i=0; i<10; i++) {}}(错误!)
  • ❌ 不能放变量声明 var / let / const{const a = 1}(错误!)
相关推荐
kyriewen1 小时前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
Csvn2 小时前
🕰️ 闭包 + setTimeout 的 5 个经典陷阱:为什么定时器看到的永远不是最新的值?
前端
lilian2332 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
CarIise3 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢4 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
IT_陈寒4 小时前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端
小灰灰搞电子5 小时前
Rust+Slint 实现温度计源码分享
前端·rust·slint
计算机魔术师5 小时前
面壁智能 OpenBMB 推出 MathForm,面向 Lean 4 数学自动形式化的开源框架、数据集与模型
前端