React面向组件编程(定义组件,组件三大核心属性,组件事件处理、组件收集表单数据、高阶函数和函数的柯里化)

目录

一、React中定义组件

1、函数式组件

2、类式组件

二、组件三大核心属性

1、组件三大核心属性1: State(状态)

2、组件三大核心属性2: props

3、组件三大核心属性3: ref

 三、组件事件处理

1、事件处理

 四、组件收集表单数据

1、受控组件

2、非受控组件

 五、高阶函数和函数的柯里化

1、高阶函数柯里化

2、不用柯里化实现


一、React中定义组件

1、函数式组件

(1)实质:一个 React 应用就是构建在 React 组件之上的。

(2)函数组件:该函数是一个有效的 React 组件,因为它接收唯一带有数据的 “​props​”(代表属性)对象与并返回一个 React 元素。这类组件被称为“函数组件”,因为它本质上就是 JavaScript 函数。

(3)代码展示如下

<!-- 准备好一个“容器” -->
	<div id="test"></div>
	
	<!-- 引入react核心库 -->
	<script type="text/javascript" src="../js/react.development.js"></script>
	<!-- 引入react-dom,用于支持react操作DOM -->
	<script type="text/javascript" src="../js/react-dom.development.js"></script>
	<!-- 引入babel,用于将jsx转为js -->
	<script type="text/javascript" src="../js/babel.min.js"></script>

	<script type="text/babel">
		//1.创建函数式组件
		function MyComponent(){
			console.log(this); //此处的this是undefined,因为babel编译后开启了严格模式
			return <h2>我是用函数定义的组件(适用于【简单组件】的定义)</h2>
		}
		//2.渲染组件到页面
		ReactDOM.render(<MyComponent/>,document.getElementById('test'))
	</script>

(4)注意:

    1.组件名必须首字母大写

    2.虚拟DOM元素只能有一个根元素

    3.虚拟DOM元素必须有结束标签

    4.函数名就是组件名

2、类式组件

(1)含义:

ES6 的 class 来定义组件,通过继承React.Component。解析流程如下:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: React函数组件经常把方法定义组件外是因为这样可以避免重复渲染。当组件内部的方法定义组件内部时,每次组件重新渲染都会创建一个新的方法,这会导致组件重新渲染时的额外性能开销。而将方法定义组件外,并将其作为props传入组件组件在重新渲染时会使用相同的方法实例,这样就可以避免重新创建方法带来的性能开销。 而将参数和属性定义组件内是因为他们是组件状态的一部分,组件的状态可能会改变,而且组件内部可以访问到这些状态。 ### 回答2: React函数组件经常把方法定义组件外,把参数和属性定义组件内主要有以下几个原因: 1. 组件定义方法可以提高代码的复用性和可维护性。将方法定义组件外部,可以使这些方法可以在不同的组件中共享和重复使用。同时,当需要修改某个方法时,只需在组件外部修改一处即可,减少了重复的工作量。 2. 通过将参数和属性定义组件内部,可以更好地控制组件的可定制性。将参数和属性定义组件内部,可以更容易地对这些参数和属性进行处理和修改。这样一来,在组件调用时,可以通过传入不同的参数和属性,使组件的功能和渲染结果变得不同。这样的设计使组件更加灵活和可配置。 3. 函数组件的设计初衷是为了提供一种简洁的方式来定义组件,将组件的结构与函数的功能结合在一起。将方法定义组件外部,可以使组件的结构更加简洁清晰,使得组件的逻辑更加集中。而将参数和属性定义组件内部,可以更好地体现组件的用途和目的。 总的来说,React函数组件将方法定义组件外部,将参数和属性定义组件内部有助于提高代码的复用性和可维护性,同时也使得组件更加灵活和可定制,更符合函数组件的设计初衷。 ### 回答3: React函数组件往往会将方法定义组件外部,将参数和属性定义组件内部,主要有以下几个原因。 首先,将方法定义组件外部可以实现代码的重用性。如果多个组件需要使用相同的方法,将其定义组件外部可以避免在每个组件内部重复定义相同的方法。这样不仅提高了代码的可维护性,还能减少代码量,使代码更加简洁。 其次,通过将参数和属性定义组件内部,可以使得组件更加独立和可复用。将参数和属性定义组件内部可以使得组件自身具有更高的灵活性和可配置性,可以根据需要接收不同的属性或者参数,从而适应不同的使用场景。 此外,将方法定义组件外部还可以提高代码的可测试性。将方法从组件中抽离出来后,可以更方便地进行元测试,因为这些方法与组件本身的生命周期和状态无关,测试也更加清晰和可靠。 最后,将方法定义组件外部还可以避免闭包陷阱。在React函数组件中,由于闭包的存在,如果在组件内部定义方法,并在状态或属性的变时使用这些方法,可能会导致不符合预期的结果。通过将方法定义组件外部,可以避免这种潜在的问题,提高代码的可靠性。 综上所述,React函数组件将方法定义组件外部,将参数和属性定义组件内部,能够提高代码的重用性、可维护性、可测试性和可靠性,以及增强组件的独立性和灵活性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值