美文网首页
九. React的插槽(Portals)

九. React的插槽(Portals)

作者: zewweb | 来源:发表于2018-05-09 21:03 被阅读0次

    Portals 提供了一种很好的方法,将子节点渲染到父组件 DOM 层次结构之外的 DOM 节点。

    ReactDOM.createPortal(child, container)
    

    第一个参数(child)是任何可渲染的React子元素,例如一个元素,字符串或片段(fragment)。第二个参数(container)则是一个DOM元素。

    一. 用法

    render() {
      // React *不* 会创建一个新的 div。 它把 children 渲染到 `domNode` 中。
      // `domNode` 可以是任何有效的 DOM 节点,不管它在 DOM 中的位置。
      return ReactDOM.createPortal(
        this.props.children,
        domNode,
      );
    }
    

    对于 portal 的一个典型用例是当父组件有 overflow: hidden 或 z-index 样式,但你需要子组件能够在视觉上 “跳出(break out)” 其容器。例如,对话框、hovercards以及提示框。

    相关文章

      网友评论

          本文标题:九. React的插槽(Portals)

          本文链接:https://www.haomeiwen.com/subject/dnhorftx.html