当前位置: 首页 > 知识库问答 >
问题:

为什么最好的做法是将分配给变量的JSX用括号括起来?

屠浩
2023-03-14

在下面的示例中,x和y的输出都是相同的。我已经看到过用两种方式编写的React代码。有区别吗?正如我看到的许多React代码示例使用括号语法一样,我认为这是有原因的。如果这是最佳实践,那么为什么用括号将JSX赋值给变量是最佳实践呢?如果还有其他原因,那是什么?

let x =  <div> Hello World! </div>;
let y = (<div> Hello World! </div>);

console.log(x,y);

共有3个答案

东郭和光
2023-03-14

在将HTML代码分配给变量(jsx)时,括号不会有太大的区别,但我想指出它在使用箭头函数甚至创建无状态组件时的优势。

const FunctionName = () => {
 return <p>Hello World </p>;
};

注意,在上面的代码中,我们必须在使用大括号时编写return关键字,但是如果您想更简洁,可以使用括号。。。

const FunctionName = () => (
 <p> Hello World </p>
); 

//or write it in one line as well

const FunctionName = () => ( <p> Hello World </p> );  
江智
2023-03-14

建议这样做有两个原因,

第一,它帮助javascript解释器找到赋值的结尾,因为有时,解释器可能会读取语句,如返回,它存在于代码的中间,并在那里结束赋值。

其次,它有助于提高可读性

return 
  <div> Your text here </div>

将被解释为

return;
<div> Your text here </div>;

因此,为了避免这种情况,首选JSX周围的括号

return (
    <div> 
       Your text here 
    </div>
)
向修谨
2023-03-14

一般来说,括号用于包装JSX代码,以提高代码的清晰度...那就是,

let y = <ul>
    <li>
        Hello World!
    </li>
</ul>;

这是丑陋但正确的

let y = 
    <ul>
        <li>
            Hello World
        </li>
    </ul>;

格式更好,但语法不正确(编译时会出错)。

因此,解决办法是使用

let y = (
    <ul>
        <li>
            Hello World
        </li>
    </ul>
);

这是两个世界中最好的。

更新:第二个代码不正确的原因是自动插入分号。感谢@EricKing指出这一点。

 类似资料:
  • 问题内容: 为什么每个人都告诉我编写这样的代码是一种不好的做法? 我省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 您还可以获得链接usings在一起的额外好处,而不必缩进一百万次。 花括号的最常见参数涉及维护编程,以及在原始if语句及其预期结果之间插入代码会引起的问题: 问题: 想要使用该语言提供的更紧凑的语法是错误的吗?设计这些语言的人很聪明,

  • 你好,我有以下php代码: 现在,我的变量结果返回为: abc@domain.com,def@domain.com 但我需要这份申报表: 'abc@domain.com','def@domain.com'。 所以每封邮件都附在一个报价单上,问题是我找不到如何在我的代码中实现这一点, 任何想法,提前感谢

  • 问题内容: 从react.js教程中,我们可以看到双花括号的用法: 然后在第二个教程“ Thinking in react”中: 但是,React JSX文档没有描述或提及双花括号。此语法(双curies)有什么用?还有另一种方法可以在jsx中表达相同的内容,或者这仅仅是文档中的遗漏? 问题答案: 它只是在prop值中内联的对象文字。和…一样

  • 问题内容: 我一直在使用IIFE中和,并一直在使用的结构如下: 方法1: 但是,我经常看到以下情况,其中将变量分配给 方法2: 注意: 此问题 不是 关于此模式是什么或IIFE是什么。这与为什么要 在IIFE上 使用返回变量及其与Angular实践的关系有关。 在Angular方法1中工作正常,但是在我看到的许多原始JS示例中,都使用了方法2。我的假设是,封装在其中的任何内容都可以通过它进行调用。

  • 问题内容: 它们都有效吗?是出于某些原因而首选? 问题答案: 方括号是列表,括号是元组。 列表是可变的,这意味着您可以更改其内容: 而元组不是: 另一个主要区别是,元组是可哈希的,这意味着您可以将其用作字典的键。例如: 请注意,正如许多人指出的那样,您可以将元组加在一起。例如: 但是, 这并不意味着元组是可变的 。在上面的示例中,通过将两个元组加在一起作为参数来构造 新的 元组。原始元组未修改。为

  • 问题内容: 通过身份验证表单中的一些Django代码,我注意到以下语法 通常,我只会在字符串周围使用一对引号。有人可以替我解释一下“用户名”下划线和括号是做什么的吗? 问题答案: 的是一个可调用(函数的名称,可调用对象)。通常用于该函数,例如在Django中: 正如文档所说: Python的标准库gettext模块作为的别名安装到全局名称空间中。在Django中,出于以下两个原因,我们选择不遵循此

  • 问题内容: 例如,如果括号/括号在以下情况中匹配: 依此类推,但如果括号/括号不匹配,则应返回false,例如: 等等。你能检查一下这个代码吗?提前致谢。 问题答案: 您的代码在处理’{‘和’}’字符时有些困惑。它应该与如何处理’(’和’)’完全平行。 这段代码经过您的稍微修改后,似乎可以正常使用:

  • 我来自C背景,最近开始学习python。我正在学习索引和选择数据。我遇到了在类,和在熊猫库。我不明白什么是?是功能还是属性?很多时候,我错误地使用而不是,并且没有得到实际的结果(但它不会给我带来错误)。 例子: 有谁能告诉我在哪里可以更多地研究这类运营商。