setstate的基本使用

什么是setState

• 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state, 当需要修改里面的值的状态需要通过调用setState来改变,从而达到更新组件内部数据的作用

setState函数介绍

第一个参数可以是一个对象,或者是一个函数,
第二个参数是一个回调函数,用于可以实时的获取到更新之后的数据

setState更新方式

同步更新:原生dom事件
异步更新:合成事件

setState是同步还是异步

• setState第一个参数可以是一个对象,或者是一个函数,而第二个参数是一个回调函数,用于可以实时的获取到更新之后的数据
• 在使用setState更新数据的时候,setState的更新类型分成:同步更新,异步更新
• 在组件生命周期或React合成事件中,setState是异步
• 在setTimeout或者原生dom事件中,setState是同步
• 对同一个值进行多次 setState, setState 的批量更新策略会对其进行覆盖,取最后一次的执行结果

调和阶段setState干了什么

  • 首先将传递给setState的对象合并到组件的当前状态,开始进行和解
  • 随后React将构建一个新的React元素树
  • 为了弄清 UI 如何响应新的状态而改变,React 会利用diff算法将这个新元素树与旧元素树进行比较
  • 通过比较,React知道了发生的确切变化并进行更新 最终达到了最小化UI的占用空间的优化效果
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是 React基本使用详细步骤: 1. 安装 React:可以使用 npm 或 yarn 进行安装。在命令行输入以下命令进行安装: ``` npm install react react-dom ``` 或者 ``` yarn add react react-dom ``` 2. 创建一个 React 应用程序:可以使用 create-react-app 工具快速创建一个新的 React 应用程序。在命令行输入以下命令进行安装: ``` npx create-react-app my-app cd my-app npm start ``` 或者 ``` yarn create react-app my-app cd my-app yarn start ``` 这将会在 my-app 目录下创建一个新的 React 应用程序,并启动开发服务器。 3. 编写组件:React 应用程序由组件构成。每个组件都有自己的状态和属性,并返回一个包含 HTML 和 JavaScript 代码的视图。以下是一个简单的 React 组件示例: ```javascript import React from 'react'; class MyComponent extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; this.handleClick = this.handleClick.bind(this); } handleClick() { this.setState({ count: this.state.count + 1 }); } render() { return ( <div> <h1>My Counter</h1> <p>Count: {this.state.count}</p> <button onClick={this.handleClick}>Click me</button> </div> ); } } export default MyComponent; ``` 这个组件包括一个计数器,每次点击按钮都会增加计数器的值。组件的状态保存在组件的 state 对象,点击按钮时调用 handleClick 方法更新状态。 4. 渲染组件:使用 ReactDOM.render() 函数将组件渲染到指定的 HTML 元素。在 index.js 文件使用以下代码渲染 MyComponent 组件: ```javascript import React from 'react'; import ReactDOM from 'react-dom'; import MyComponent from './MyComponent'; ReactDOM.render( <MyComponent />, document.getElementById('root') ); ``` 这将会将 MyComponent 组件渲染到 id 为 root 的 HTML 元素。 5. 处理事件:React 使用类似于原生 JavaScript 的事件处理方式,可以在组件定义处理事件的方法。在 MyComponent 组件,我们定义了 handleClick 方法来处理按钮的点击事件。在按钮元素使用 onClick 属性绑定 handleClick 方法: ```html <button onClick={this.handleClick}>Click me</button> ``` 6. 处理状态:React 允许你在组件管理状态。状态是组件的数据,当状态发生变化时,React 会自动重新渲染组件视图。在 MyComponent 组件,我们使用 state 对象来保存计数器的值。当点击按钮时,调用 handleClick 方法更新 state 对象的 count 属性: ```javascript handleClick() { this.setState({ count: this.state.count + 1 }); } ``` 7. 与其他组件交互:React 应用程序通常由多个组件构成,这些组件可以相互交互和通信。可以使用属性和事件来实现组件之间的通信。在 MyComponent 组件,我们可以将 count 属性作为 props 传递给其他组件: ```javascript <OtherComponent count={this.state.count} /> ``` 其他组件可以通过 props 对象访问 count 属性: ```javascript class OtherComponent extends React.Component { render() { return ( <div> <p>Count: {this.props.count}</p> </div> ); } } ``` 以上就是 React基本使用详细步骤。要深入学习 React,你需要了解更多的 React API 和编程技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值