005.2 React面向组件编程-什么是组件-类组件

React的组件分为三个部分,其实可以理解为java的对象,props就是java的get、set

.属性props(一般用于父子组件传值)
2.状态state(当前组件自己的数据)
3.生命周期(啥时候创建,啥时候props改变,啥时候渲染结束等等)

创建一个类组件

<body>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        //类组件的命名方式和Java类一样,并且必须继承React.Component
        class MySub extends React.Component{
            //render()方法里必须返回一个jsx
            render(){
                return (
                    <div>这是一个类组件</div>
                );
            };
        }
        //同样也是单标签、双标签都可以调用组件
        let dom = <div>
            <MySub/>
            <MySub></MySub>
        </div>;
        ReactDOM.render(dom, document.getElementById("app"));
    </script>
</body>

通过props就可以对组件进行数据传递,因此props是组件对外的接口,父组件也可以给子组件传递数据。

注意:无论是函数组件还是类组件,都无法修改自身的props。

 

和函数组件一样,通过属性的方式给props传值,类组件通过this.props来获取数据:

<body>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        class MySub extends React.Component {
            render() {
                return <div>{this.props.user.name}->{this.props.user.age}岁</div>
            };
        };
        let user = {
            name: "黑白大彩电",
            age: 21
        };
        let dom = <div>
            <MySub user={user} />
        </div>;
        ReactDOM.render(dom, document.getElementById("app"));
    </script>
</body>

给props设置默认值

<body>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        class MySub extends React.Component {
            //设置默认值
            static defaultProps = {
                user: {
                    name: "黑白大彩电",
                    age: 22
                }
            }
            render() {
                return <div>{this.props.user.name}->{this.props.user.age}岁</div>
            };
        };
        let dom = <div>
            <MySub />
        </div>;
        ReactDOM.render(dom, document.getElementById("app"));
    </script>
</body>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值