Javascript 如何使用JSX'在React元素上定义属性;收集';变成一个物体?
在此代码中:Javascript 如何使用JSX'在React元素上定义属性;收集';变成一个物体?,javascript,reactjs,Javascript,Reactjs,在此代码中: const App = ({val}) => { console.log(val) // logs 20 to console return <div>val</div> } <App val={20} val2={1}/> 然后在App的论点中,我实际上是这样分解结构的: const {val} = {val: 20, val2: 1} 因此,从JSX的转换中,似乎出现了与解构相反的情况。这是正确的吗 发生这种情况的过程是否
const App = ({val}) => {
console.log(val) // logs 20 to console
return <div>val</div>
}
<App val={20} val2={1}/>
然后在App
的论点中,我实际上是这样分解结构的:
const {val} = {val: 20, val2: 1}
因此,从JSX
的转换中,似乎出现了与解构相反的情况。这是正确的吗
发生这种情况的过程是否使用了“rest”操作?是React.createElement
的语法糖,是React.createElement
props参数的语法糖,它是一个对象
<App val={20} val2={1}/>
对于其他适用的道具,它们是对象扩展语法的语法糖
<App val={20} val2={1} {...rest}/>
还是ES6
React.createElement(App, Object.assign({ val: 20, val2: 1}, rest));
是React.createElement
的语法糖,是React.createElement
props参数的语法糖,它是一个对象
<App val={20} val2={1}/>
对于其他适用的道具,它们是对象扩展语法的语法糖
<App val={20} val2={1} {...rest}/>
还是ES6
React.createElement(App, Object.assign({ val: 20, val2: 1}, rest));
简而言之,它是由JSX解析器完成的,其中一个解析器实现是 这个过程的例子是
- 逐行查看JSX代码李>
- 根据规范识别反应元件(见下文)李>
- 对于每个元素,将解析它们的属性和值。并将它们推入
数组。稍后将成为属性
的React.createElement
对象props
描述JSX语法的规范可以在这里找到 简而言之,它是由JSX解析器完成的,解析器实现之一是 这个过程的例子是
- 逐行查看JSX代码李>
- 根据规范识别反应元件(见下文)李>
- 对于每个元素,将解析它们的属性和值。并将它们推入
数组。稍后将成为属性
的React.createElement
对象props
描述JSX语法的规范可以在这里找到 JSX语法糖需要一个预处理步骤来创建
React.createElement
。我想我要问的是,是否有一种方法可以将const定义的变量“收集”到单个对象中:const a=2、b=3、c等等,然后将它们作为单个对象与这些键一起传递。我猜我现在不是在写这篇文章(对于rest/spread/destructuring我仍然有点不确定-如果这是一个糟糕的问题,很抱歉),这就是上面显示的rest
对象。它将是constprops={a:2,b:3}代码>,我想。这就是你要问的吗?JSX语法糖需要一个预处理步骤来创建React.createElement
。我想我要问的是,是否有一种方法可以将const定义的变量“收集”到单个对象中:const a=2、b=3、c等等,然后将它们作为单个对象与这些键一起传递。我猜我现在不是在写这篇文章(对于rest/spread/destructuring我仍然有点不确定-如果这是一个糟糕的问题,很抱歉),这就是上面显示的rest
对象。它将是constprops={a:2,b:3}代码>,我想。这是你问的吗?