前端开发圈

React中如何运用类似Vue中的slot分发组件?

2018-03-10  本文已影响30人  bennnnn

微信截图_20180310142617.png

在vue中,我们使用slot分发,来完成可组合组件,类似一个组件中有多个插槽,需要用哪些功能,就插入需要的功能。

在React叫做可组合组件,那么在React中如何实现?
1.需要在组件中,将props中的值出来解构出来。

//这两者作用完全等价
const { children, tabNameLeft, tabNameRight } = this.props;//es6解构语法

2.在组件中,需要改变的地方加上{children}

 {children}
    <NavUl>
        <div>{tabNameLeft}</div>
        <div>{tabNameRight}</div>
    </NavUl>

组件代码:

public render() {
const { children, tabNameLeft, tabNameRight } = this.props;
    return (
        {children}
        <NavUl>
            {tabNameLeft !== "" &&
                <NavLi>
                    <NavLiDiv>
                        <Link to="/digital-museum" style={
                            this.tabStyle
                        }>{tabNameLeft}</Link>
                    </NavLiDiv>
                </NavLi>}
            {tabNameRight !== "" &&
                <NavLi>
                    <NavLiDiv>
                        <Link to="/quaternity" style={
                            this.tabStyle
                        }>{tabNameRight}</Link>
                    </NavLiDiv>
                </NavLi>
            }
        </NavUl>
    )
}

3.使用组件的地方,将你需要传入的值传进你定义好的参数即可实现slot

<Header tabNameLeft={"A"} tabNameRight={""} ></Header>
上一篇 下一篇

猜你喜欢

热点阅读