react-函数组件与类组件

函数组件与 class 组件

函数组件

//创建函数式组件
function Mycomponent() {
  console.log(this); //此处的 this 为 undefined,因为Babel编译后开启了严格模式
  return <div>我是用 函数组件 创建的组件,适用于简单场景</div>;
}
//渲染组件
ReactDOM.render(<Mycomponent />, document.getElementById("root"));
/*
执行了ReactDOM.render(<Mycomponent />,document.getElementById("root"))后,发生了什么?
1.react解析组件标签,找到了 Mycomponent 组件
2.发现 Mycomponent 是函数定义的,调用该函数,将返回的虚拟DOM转为真实DOM,呈现在页面上
 */

类组件

//创建类组件
class Mycomponent extends React.Component(
  render(){
    //render放在哪里?---> Mycomponent的原型对象上
    //render中的 this 指向?---> Mycomponent的实例对象
    return(
      <div>我是用 类组件 创建的组件,适用于复杂场景</div>
    )
  }
);
//渲染组件
ReactDOM.render(
  <Mycomponent/>,
  document.getElementById("root")
)
/*
执行了ReactDOM.render(<Mycomponent />,document.getElementById("root"))后,发生了什么?
1.react解析组件标签,找到了 Mycomponent 组件
2.发现 Mycomponent 是类定义的, new 出该类的实例,通过实例调用原型上的 render 方法
3.将虚拟DOM转为真是DOM,呈现在页面上
 */

引用组件

import React from 'react';
import ReactDOM from 'react-dom';
//App组件,组件要求大写字母开头
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

函数组件和 class 组件的区别

用构造函数创建出来的组件,叫做“无状态组件”;

用 class 关键字创建出来的组件,叫做“有状态组件”;

有状态组件和无状态组件之间的本质区别是有无 state 属性。

注意

使用 class 关键字创建的组件,有自己的私有数据(this.state)和生命周期函数以及 refs
使用 function 创建的组件,只有 props,没有自己的私有数据和生命周期函数和 refs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值