当前位置: 首页 > news >正文

React中的函数组件与类组件

在React中,有两种不同的组件形式:函数组件和类组件。它们的写法并不相同。

函数组件

React的函数组件是一个只接受 props 参数并返回元素的 JavaScript 函数(该props与Vue中props一样是只读的,且都是父组件传递给子组件的数据)。

export function MyComponent(props) { // 不同于Vue中的函数组件(有props和ctx两个参数)return <h1>{ props.hobby }</h1>;
}

函数式组件自身没有任何状态(state)生命周期方法,只接受其父组件传递的数据(props)。

类组件

类组件使用class关键字定义,组件名格式必须是大驼峰,且继承于React.component

class MyComponent extends React.Component {constructor(props) {super(props); // 也可以接受propsthis.state = {} // 组件的状态(响应式状态)// 必须为类组件中的方法显示绑定this(法一),否则在经过babel的转化后(严格模式下)函数方法的this指向undefinedthis.[methodName1] = this.[methodName1].bind(this);}[methodName1]() {} // 类组件的方法// 箭头函数没有自己的this,因此会使用上层作用域的this[methodName2] = () => {}[methodName3]() {} // render函数中的this默认指向组件实例render() { // 类组件固定方法,返回要渲染的内容(jsx)return (<> // 等同于<Fragment></Fragment>,不过Fragment上可以写key<h1>Hello, { this.props.name }</h1><button onClick={this.[methodName1]}>点击按钮</button>{/* 或者在jsx中为类组件中的方法显示绑定this(法一) */}{/* <button onClick={this.[methodName1].bind(this)}>点击按钮</button> */}<button onClick={this.[methodName2]}>点击按钮</button><button onClick={() => this.[methodName3]()}>点击按钮</button></>);}
}

因此,函数组件和类组件的主要区别是:函数组件没有任何状态(state)和生命周期方法(因为生命周期方法来源于React.component),且函数组件中不会使用this。不过,函数组件可以在使用React中的Hooks时使用state


http://www.mrgr.cn/news/52516.html

相关文章:

  • Java语言-抽象类
  • C实现本地资源文件编译时加载
  • TELEDYNE DALSA相机连接编码器
  • 双调TSP问题最牛逼的解法,不接受所有人反驳
  • IntranetVPN、AccessVPN、ExtranetVPN
  • 大型语言模型中的知识机制:综述与展望
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-8
  • 八、【智能体】5分钟搞定插件怎么玩?教你如何在“扣子”中解锁智能体新技能!
  • 基于机器学习的心脏病风险评估预测系统
  • 修改pip源
  • 解析阿里「 聚石塔」产品
  • 孩子早接触编程是好还是坏?正确看待少儿编程的利与弊
  • 编码风格之(8)C++语言规范(Google风格)3.md
  • 吴恩达深度学习笔记(6)
  • linux的安装教程(后续会更新)
  • Qt | 元对象+元枚举+Qt自带图标案例
  • Windows环境apache控制台命令行启动、停止、重启httpd服务
  • JavaScript 第17章:性能优化
  • Ability内页面的跳转和数据传递(router和want显/隐跳转)
  • 后端程序员必备:15个MySQL表设计的经验准则