react 基础之组件篇——设计复合组件

简介: 设计复合组件

设计复合组件


微信图片_20220512115500.jpg


1. 复合组件要怎么设计?


1.本节内容将实现如下效果,一个卡片。

微信图片_20220512115733.png

分析


首先这个卡片可以分成三部分:

第一部分有背景色的内容分

第二部分是下面的描述部分

第三部分最大的盒子


  1. 直接在 style 里面先定义好类名与样式,组件上写好对应的样式名className 即可。


提醒: 设计组件时,一般都按照把控大局,再设计好每个小组件的规律。

第一部分代码如下:


var Square = React.createClass({
                render: function() {
                    var squareStyle = {
                        height: 150,
                        backgroundColor: this.props.color,
                        textAlign: 'center',
                        color: 'white',
                        lineHeight:'150px'
                    };
                    return (
                        <div style={squareStyle}>
                         { this.props.content }
                        </div>
                    );
                }
            });



第二部分代码如下:


var Label = React.createClass({
                render: function() {
                    var labelStyle = {
                        fontFamily: "sans-serif",
                        fontWeight: "bold",
                        padding: 3,
                        margin: 0,
                        textAlign: 'center',
                    };
                    return (
                        <div style={labelStyle}>
                            <p>{ this.props.desc }</p>
                        </div>
                    );
                }
            });


第三部分代码如下:


var Card = React.createClass({
                render: function() {
                    var cardStyle = {
                        height: 200,
                        width: 150,
                        backgroundColor: "#FFF",
                        WebkitFilter: "drop-shadow(0px 0px 5px #666)",
                        filter: "drop-shadow(0px 0px 5px #666)"
                    };
                    return (
                        <div style={cardStyle}>
                            <Square color={this.props.color} content={this.props.content} />
                            <Label color={this.props.color} desc={this.props.desc}/>
                        </div>
                    );
                }
            });


当然还有最后的调用如下:


ReactDOM.render(
        <div>
            <Card color="#FFA737"  content="我是内容" desc="我是描述" />
        </div>,
        destination
);


效果如上图卡片所示。

可以看到,不少值都是父组件 Card 通过 props 传递给 子组件Label和Square的,这样子可以实现多种变化,不会定死只能是一个内容了,体现了组件的可扩展性。


4. 后语


虽然看上去很简单,但是建议初学者自己敲一遍,可能会出现各种各样的问题。学习,千万不能有所见即所得的想法,实践才是检验真理的唯一标准。

相关文章
|
3月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
269 0
|
3月前
|
存储 前端开发 JavaScript
【第34期】一文学会React组件传值
【第34期】一文学会React组件传值
56 0
|
3月前
|
前端开发
【第31期】一文学会用React Hooks组件编写组件
【第31期】一文学会用React Hooks组件编写组件
52 0
|
3月前
|
存储 前端开发 JavaScript
【第29期】一文学会用React类组件编写组件
【第29期】一文学会用React类组件编写组件
59 0
|
3月前
|
前端开发 开发者
【第26期】一文读懂React组件编写方式
【第26期】一文读懂React组件编写方式
46 0
|
3月前
|
资源调度 前端开发 JavaScript
React 的antd-mobile 组件库,嵌套路由
React 的antd-mobile 组件库,嵌套路由
92 0
|
3月前
|
存储 前端开发 中间件
React组件间的通信
React组件间的通信
37 1
|
3月前
|
前端开发 JavaScript API
React组件生命周期
React组件生命周期
100 1
|
3月前
|
存储 前端开发 JavaScript
探索 React Hooks 的世界:如何构建出色的组件(下)
探索 React Hooks 的世界:如何构建出色的组件(下)
探索 React Hooks 的世界:如何构建出色的组件(下)
|
3月前
|
缓存 前端开发 API
探索 React Hooks 的世界:如何构建出色的组件(上)
探索 React Hooks 的世界:如何构建出色的组件(上)
探索 React Hooks 的世界:如何构建出色的组件(上)