JSX

10 小时前
/ ,
1

JSX

jsx是(Blob/Typescript) 翻译成对 React.createElement() 的语法糖

隐身 children 展开原则

在 React 中,写在组件标签体(开闭标签之间)的所有节点会被编译器自动塞进一个名为 children 的 prop;
当组件内部使用 {...props}(或 {...rest})把剩余属性全部展开到原生 DOM 元素时,children 也随之被传递并渲染,因此无需显式书写 {children}。

export function ItemTest({...props}){
    return (
        <div
        {...props}>
        </div>
    )
}

<ItemTest>
  我们是
  123
</ItemTest>

此时 ItemTest 组件内部的 props 为
props = {
  children: '我是\n123'
}

当props注入到div时,div会自动渲染children
如下结果:
<div>
  我们是
  123
</div>

因为blob会把以下jsx编译为js文件
===> jsx
<ItemTest>
  我们是
  123
</ItemTest>
===> js
React.createElement(
  ItemTest,
  { children: ["我们是","123"] }   
)

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...