react 文档学习

1,组合 vs 继承
JSX 标签中的所有内容都会作为一个 children prop 传递给 子 组件

// 组件
function FancyBorder(props) {
  return (
    <div className={'FancyBorder FancyBorder-' + props.color}>
      {props.children}
    </div>
  );
}
// 使得别的组件可以通过 JSX 嵌套,将任意组件作为子组件传递给它们
function WelcomeDialog() {
  return (
    <FancyBorder color="blue">
      <h1 className="Dialog-title">
        Welcome
      </h1>
      <p className="Dialog-message">
        Thank you for visiting our spacecraft!
      </p>
    </FancyBorder>
  );
}

少数情况下,你可能需要在一个组件中预留出几个“洞”。这种情况下,我们可以不使用 children,而是自行约定:将所需内容传入 props,并使用相应的 prop。

function SplitPane(props) {
  return (
    <div className="SplitPane">
      <div className="SplitPane-left">
        {props.left}
      </div>
      <div className="SplitPane-right">
        {props.right}
      </div>
    </div>
  );
}

function App() {
  return (
    <SplitPane
      left={
        <Contacts />
      }
      right={
        <Chat />
      } />
  );
}
// <Contacts /> 和 <Chat /> 之类的 React 元素本质就是对象(object),所以你可以把它们当作 props,像其他数据一样传递。这种方法可能使 
 //  你想起别的库中“槽”(slot)的概念,但在 React 中没有“槽”这一概念的限制,你可以将任何东西作为 props 进行传递。

React 组件也能够返回存储在数组中的一组元素:

render() {
  // 不需要用额外的元素包裹列表元素!
  return [
    // 不要忘记设置 key :)
    <li key="A">First item</li>,
    <li key="B">Second item</li>,
    <li key="C">Third item</li>,
  ];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 条件渲染 使用运算符if和条件运算符去创建元素来表现当前的状态。 几种在JSX中内联条件渲染的方法 &&与运算符 ...
    kiterumer阅读 3,411评论 0 0
  • 深入JSX date:20170412笔记原文其实JSX是React.createElement(componen...
    gaoer1938阅读 12,458评论 2 35
  • 近期开始入门react,对于我这样的前端码畜来讲Q: 入门最好的方式是什么?(黑人问号脸)A: 当然是看文档呀!!...
    Eastboat阅读 1,833评论 0 0
  • $ 前言   在《React系统性学习(上)》中我们主要学习了 什么是React JSX语法 元素渲染 组件(Co...
    果汁凉茶丶阅读 6,923评论 1 9
  • GUIDS 第一章 为什么使用React? React 一个提供了用户接口的JavaScript库。 诞生于Fac...
    jplyue阅读 8,918评论 1 11