如何在JSX中操作字符串?

时间:2016-08-26 23:00:24

标签: javascript string reactjs jsx

我在JSX文件中有一个字符串,我必须以这种方式操作:

假设我有以下字符串,其值为medical_specialty = "Plastic Surgery"

我需要这样做:

medical_specialty.replace(' ', '-').toLowerCase()

将其转换为plastic-surgery

我在JSX文件中是否有完整的JavaScript语法?

3 个答案:

答案 0 :(得分:0)

JSX只不过是JavaScript加上XML-ish语法扩展。

我不确定你是如何在不使用JS的情况下编写JSX的,例如,通过ES6类,旧式createClass方法等。显然它是JavaScript ,任何琐碎的网络搜索都会告诉你JSX究竟是什么:

  

JSX是一个预处理器步骤,它为JavaScript添加了XML语法。

答案 1 :(得分:0)

您可以在JSX文件中使用此sysntax 例如,使用react:

  render() {
    let medical_specialty = "Plastic Surgery"

    medical_specialty = medical_specialty.replace(' ', '-').toLowerCase()

    return (
        <div>
            { medical_specialty }
        </div>
    )
  }

正如Dave Newton所说,JSX只不过是一个为JavaScript添加XML语法的再处理器步骤。

答案 2 :(得分:0)

JSX是一种语法,正在被转换为**纯JavaScript **(例如,通过babel-plugin-transform-react-jsx)。

所以你不能操纵实际的JSX(就像你使用 true XML一样,它将使用类似XMLDOM的东西进行解析),因为JSX本身永远不会在运行时被解析为字符串,它&# 39; s实际上是代码。

花括号中的任何内容都被标记为转换的部分,因此您可以拥有任何您想要的内容,只要它与JSX流的其余部分匹配(所有这些都将结束)作为JS代码,包括其中的任何编译或运行时错误。)

例如,这个:

    <SomeComponent someAttr="value">
        <SomeSubComponent/>
    </SomeComponent>;

将转变为

    React.createElement(
        SomeComponent,
        { someAttr: "value" },
        React.createElement(SomeSubComponent, null)
    );

查看Babel online compiler以便过期!

有一个很好的编码日; - )