React.js中是否支持与Svelte相同的Props属性简写语法?
React 同名属性简写语法支持情况
React 原生支持你提到的这类属性简写写法,你给出的示例代码 <button {type}>Click me!</button> 是完全合法的,可以直接在项目中使用。
语法说明
这种简写规则和 Svelte 中的规则完全一致:当 JSX 标签的属性名,和你要传入的变量名完全相同时,就可以省略掉属性名和等于号,直接写 {变量名} 即可。
举个例子:
原来的完整写法:
<img src={src} alt={alt} onClick={onClick} />
等价于简写形式:
<img {src} {alt} {onClick} />
使用前提
现在主流的 React 项目开发工具链(包括 Babel、TypeScript、esbuild 等常用编译工具,以及 Create React App、Vite React 模板、Next.js 等脚手架的默认配置)都已经原生支持该语法,不需要做额外的配置即可直接使用。
注意:该简写仅适用于属性名和变量名完全匹配的场景,如果属性名和变量名不一致,还是需要使用完整的
属性名={变量名}写法。比如你定义的点击处理函数叫handleClick,就需要写为onClick={handleClick},无法直接简写。
内容的提问来源于stack exchange,提问作者sebastian.zawolanski
相关产品推荐
相关产品推荐

