React框架的第八课 语法基础课《第二课React框架中的事件》

简介: React框架的第八课 语法基础课《第二课React框架中的事件》

React框架的第八课 语法基础课《第二课React框架中的事件》

React中的事件是指通过React建立的应用程序中处理用户交互的响应。React事件处理程序只是在组件上调用的JavaScript函数,以响应某些类型的操作或事件,例如点击、触摸、滚动等。


React组件可以使用以下代码创建事件处理程序


onClick={handleClick}


其中onClick是React的一个内置事件,表示当元素被点击时将被触发的处理程序。在这里,handleClick是一个函数,它接受并执行单击事件处理逻辑。


除了onClick事件之外,React还支持许多其他事件类型,例如:


onChange:表单控件值更改

onSubmit:表单提交

onFocus:获得输入焦点

onBlur:失去输入焦点

React中的事件处理程序通常是类组件或函数式组件中定义的方法或函数。但是,在使用函数组件时,我们需要使用React的useState和useEffect挂钩来跟踪组件的状态和处理任何副作用。

回顾JavaScript中的DOM元素中操作的事件

JavaScript中的DOM元素中操作的事件

image.png

image.png

JavaScript中 Event对象

image.png

JQUERY中的事件

 

 

 

 

 

 

 

 

 

2.event对象2.event对象的常用属性的常用属性

 

 

 

import React, { Component } from 'react'
/**
 * 采用on+事件名的方式来绑定一个事件,注意,这里和原生的事件是有区别的,原生的事件全是小写
onclick , React里的事件是驼峰 onClick ,React的事件并不是原生事件,而是合成事件。
 */
export default class App extends Component {
    render() {
        return (
            <div>
                <input></input>
                {/* 事件绑定事件 函数执行单机事件 */}
                <button onClick={() => {
                    console.log("CLICK1用户单机按钮一的内容")
                }}>增加按钮1</button>
                {/* <button onClick={this.handleCliclk()}>增加按钮2</button> */}
                <button onClick={this.handleCliclk}>增加按钮2</button>
                <button onClick={this.handleCliclk3}>增加按钮3</button>
                <button onClick={()=>{
                this.handleCliclk4()
                }}>增加按钮4</button>
            </div>
        )
    }
    handleCliclk() {
        console.log("CLICK2用户单机按钮2的内容")
    }
    // es6
    handleCliclk3=()=>{
        console.log("CLICK2用户单机按钮3的内容")
    }
    handleCliclk4=()=>{
        console.log("CLICK2用户单机按钮4的内容")
    }
}
import React, { Component } from 'react'
/**
 * 采用on+事件名的方式来绑定一个事件,注意,这里和原生的事件是有区别的,原生的事件全是小写
onclick , React里的事件是驼峰 onClick ,React的事件并不是原生事件,而是合成事件。
 */
export default class App extends Component {
 a=200
    render() {
        return (
            <div>
                <input></input>
                {/* 事件绑定事件 函数执行单机事件 */}
                <button onClick={(even) => {
                    console.log("CLICK1用户单机按钮一的内容",this.a,even.target)
                }}>增加按钮1</button>
                {/* <button onClick={this.handleCliclk()}>增加按钮2</button> */}
                <button onClick={this.handleCliclk2.bind(this)}>增加按钮2</button>
                <button onClick={this.handleCliclk3}>增加按钮3</button>
                <button onClick={()=>{
                this.handleCliclk4()
                }}>增加按钮4</button>
            </div>
        )
    }
    handleCliclk2() {
        console.log("CLICK2用户单机按钮2的内容",this)
    }
    // es6
    handleCliclk3=()=>{
        console.log("CLICK2用户单机按钮3的内容",this.a)
    }
    handleCliclk4=()=>{
        console.log("CLICK2用户单机按钮4的内容",this.a)
    }
}
// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有
//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React
// import App from './App';
import React from'react'
// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中
//引入的,而不是从 react 引入。
import ReactDOM from 'react-dom'
// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上
// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语
//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。
// import App from'./01-base/01-class组件'
// import App from'./01-base/02-函数式组件'
// import App from'./01-base/03组件套娃'
import App from'./01-base/04-组件的样试'
// import App from './01-base/07Ref'
// import App from './01-base/08state'
// import App from './01-base/09数组循环'
ReactDOM.render(
    // <div>
    // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b>
    // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2>
    // </div>
    // React.createElement("div",{
    //     id:"aaaa",
    //     class:"bbbbb"
    // },"我是第二种方案")
    // <div>11111</div>
    <App></App>
    ,
    document.getElementById("root")
    )
//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面
    /**
     * jsx=js+xml
     */

相关文章
|
1月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
79 9
|
2月前
|
移动开发 前端开发 JavaScript
React 表单与事件
10月更文挑战第10天
50 1
|
1月前
|
JavaScript 前端开发 容器
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
|
1月前
|
存储 前端开发
在React框架中,如何使用对象来管理组件的状态
在React中,组件状态通过`state`对象管理,利用`setState`方法更新状态。状态变化触发组件重新渲染,实现UI动态更新。对象结构清晰,便于复杂状态管理。
|
1月前
|
开发框架 前端开发 JavaScript
React 框架的优点和缺点是什么?
React框架作为当前主流的前端开发框架之一,具有诸多优点,同时也存在一些缺点
|
1月前
|
JavaScript 前端开发 算法
React 框架和 Vue 框架的区别是什么?
React框架和Vue框架都是目前非常流行的前端JavaScript框架,它们在很多方面存在区别
|
1月前
|
移动开发 前端开发 JavaScript
React框架
React是一个用于构建用户界面的JavaScript库,由Facebook开发并于2013年开源,目前在前端开发领域得到了广泛的应用。
|
1月前
|
前端开发 JavaScript 开发者
React 事件处理机制详解
【10月更文挑战第23天】本文介绍了 React 的事件处理机制,包括事件绑定、事件对象、常见问题及解决方案。通过基础概念和代码示例,详细讲解了如何处理 `this` 绑定、性能优化、阻止默认行为和事件委托等问题,帮助开发者编写高效、可维护的 React 应用程序。
124 4
|
2月前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
|
1月前
|
JavaScript 前端开发 开发者
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
38 0