这两个符号在React.js中的含义有何不同?

时间:2018-03-30 15:07:51

标签: javascript html reactjs

最近遇到了这两个符号。虽然两者似乎都在做类似的事情,但其中一个使用赋值运算符,而另一个似乎是一个对象。他们做了什么不同的事吗?



const { value = "" } = this.props;






let { value: newValue } = newProps;




2 个答案:

答案 0 :(得分:4)

这两个都在破坏一个对象。当您使用[Explanation] Like "*No Alternative*" Or [Explanation] Like "*1*" 时,如果值未定义/ null,则设置默认值。使用=,您可以对变量进行别名处理。你甚至可以将它们结合起来:

:

答案 1 :(得分:3)

实际上它与React库无关。它们是ES6 destructuring assignments.

第一个示例将创建一个名为SELECT users.name, sum(revenues.value) as suma FROM `users` JOIN revenues ON users.id = revenues.user_id WHERE users.country = "de" ORDER BY suma DESC LIMIT 1 的常量变量,并将分配value(对象,数组,数字)。如果this.props.value未定义,但它将使用默认值this.props.value - 空字符串。

= ""

在第二个示例中,将创建const { value = "" } = this.props; 变量,它将等于newValue(即使它未定义)。

newProps.value