在JSX中添加空白的最佳实践
Best practice when adding whitespace in JSX
我理解如何(以及为什么)在JSX中添加空白,但我想知道什么是最佳实践,或者是否有任何真正的区别?
在一个span中换行两个元素
<div className="top-element-formatting">
<span>Hello </span>
<span className="second-word-formatting">World!</span>
</div>
添加到一行
<div className="top-element-formatting">
Hello <span className="second-word-formatting">World!</span>
</div>
添加空格
<div className="top-element-formatting">
Hello {" "}
<span className="second-word-formatting">World!</span>
</div>
由于 
使您具有非换行空格,因此您应该仅在必要时使用它。在大多数情况下,这会产生意想不到的副作用。
旧版本的React,我相信所有v14之前的版本,当你在标签里面有换行符时,会自动插入<span> </span>
。
虽然他们不再这样做,但这是在您自己的代码中处理此问题的安全方法。除非您有专门针对span
的样式(通常是不好的做法),否则这是最安全的路线。
根据你的例子,你可以把它们放在一行,因为它很短。在较长的场景中,您应该这样做:
<div className="top-element-formatting">
Hello <span className="second-word-formatting">World!</span>
<span> </span>
So much more text in this box that it really needs to be on another line.
</div>
此方法对于自动修剪文本编辑器也是安全的。
另一种方法是使用{' '}
不插入随机HTML标签。在样式化、突出显示元素和从DOM中删除混乱时,这可能更有用。如果你不需要向后兼容React v14或更早版本,这应该是你的首选方法。
<div className="top-element-formatting">
Hello <span className="second-word-formatting">World!</span>
{' '}
So much more text in this box that it really needs to be on another line.
</div>
您可以使用css属性white-space并将其设置为预换行到封闭的div元素
div {
white-space: pre-wrap;
}
我倾向于使用
它不漂亮,但这是我发现的最不令人困惑的添加空白的方法,它让我可以完全控制我添加的空白的大小。
如果我想加5个空格:
Hello <span className="second-word-formatting">World!</span>
当我几周后回到代码时,很容易确定我在这里要做什么。
你可以使用像表达式一样的花括号加上双引号和单引号来表示空格,即
{" "} or {' '}
你也可以使用ES6模板字面值,例如
` <li></li>` or ` ${value}`
你也可以像下面这样使用
<span>sample text </span>
在打印html内容时,也可以在dangerlysetinnerhtml中使用
<div dangerouslySetInnerHTML={{__html: 'sample html text: '}} />
您可以使用引号添加简单的空白:{" "}
还可以使用模板字面值,它允许插入、嵌入表达式(花括号内的代码):
`${firstName} ${surname}` // Notice this sign " ` ",its not normal quotes.
我一直在考虑在不同的行上将文本放在组件旁边时使用的良好约定,并发现了几个不错的选项:
<p>
Hello {
<span>World</span>
}!
</p>
或
<p>
Hello {}
<span>World</span>
{} again!
</p>
每一个都产生干净的html,没有额外的
或其他无关的标记。它比使用{' '}
创建更少的文本节点,并且允许使用{' hello & goodbye '}
不允许使用的html实体。
您不需要插入
或用<span/>
包裹额外空间。只使用HTML实体代码的空间-  
为HTML-entity插入规则空格
<form>
<div>Full name:</span> 
<span>{this.props.fullName}</span>
</form>
使用{}或{' '}或
在span元素和内容之间创建空间。
<b> {notif.name} </b> <span id="value"> { notif.count }{``} </span>
如果目标是分隔两个元素,您可以使用下面的CSS:
A<span style={{paddingLeft: '20px'}}>B</span>
尽管使用
,但这是一种简洁的方法:使用<Fragment>
标记在变量中插入HTML,这允许在JSX中使用自定义分隔符创建。
Import { Fragment }
…
import { Fragment } from "react"
创建变量..
const space = <Fragment> </Fragment>
注意:也可以用<span>
代替<Fragment>
return (
<div> some text here {space} and here... </div>
)
- 如何删除多行HTML排列中的空白
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 不同浏览器中的空白字符正则表达式行为
- Javascript中的空白是什么
- Facebook共享显示一个接一个的空白页面
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 什么'这是在不创建空白的情况下按比例调整图像大小的最佳方法
- 在JSX中添加空白的最佳实践
- 在javascript中执行split()并忽略空白条目的最佳方法是什么?