08-react修改state数据驱动视图UI的更新【注意和vue的区别】
// setState 修改状态 如果是直接修改页面不会改变 使用 setState 修改数据 才会驱动视图的改变
// setState 的原理:修改玩状态之后会调用 render 函数
import ReactDom from "react-dom"
import { Component } from "react"
// react 状态不可变 要重新创建状态,及覆盖原来的状态
class App extends Component {
// 自增函数
addFn () {
console.log(123)
// 不要直接修改 state 的状态 是无效的
this.state.a = 12
console.log(this.state.a)
this.setState({
count: this.state.count + 1, // this.state.count++ 是不可以的 这是直接修改当前值了
// 数组的push 等方法也不能使用 都是修改当前数组了
list: [...this.state.list, 123], // 这样就不会直接修改 this.state.list and 重新给list赋值
// 数组方法中只要直接修改原数组的方法都不能使用
// 修改对象的方式 name 是要修改的属性 后面的name属性就会覆盖原来的name属性从而达到目的【驱动视图】
persion: {
...this.state.persion,
name: "router"
}
})
}
state = {
count: 10,
a: 1,
}
render () {
return (<div>
<h1>计数器:{this.state.count}</h1>
{
// bind 绑定当前的this 然后返回新的函数
// 或者使用箭头函数 因为箭头函数本身没有this 使用父级的this指向
}
<button onClick={this.addFn.bind(this)}>加一</button>
</div >)
}
}
// 把租价渲染到页面
ReactDom.render(<App />, document.querySelector("#root"))
setState的修改数据并能驱动视图的原理:
1. 重写state的数据,进行了覆盖
2. 修改完成后会立即调用render函数渲染页面UI
08-react修改state数据驱动视图UI的更新【注意和vue的区别】的更多相关文章
- react 修改state某一属性值
1.state // 筛选框相关数据 searchSelect: { term: { value: '学期', key: '', options: [] }, type_of_personnel: { ...
- React修改state(非redux)中数组和对象里边的某一个属性的值
在使用React时,会经常需要处理state里边设置的初始值以达到我们的实际需求,比如从接口获取到列表数据后要赋值给定义的列表初始值,然后数据驱动view视图进而呈现在我们眼前,这种最简单的赋值方式实 ...
- React 修改获取state中的值
14===> 修改state中的值 不能够直接修改 state = { num: 10 } 如 this.state.num+=12; 不能够直接修改 错误 通过 this.setState({ ...
- 修改state(react)中的某一个对象中的单个参数
react项目中我们经常会涉及到修改state中参数的问题,如果参数为常用的基本类型变量,我们可以直接通过this.setState({...})方法来进行修改,但是如果变量为一个对象我们要如何修改呢 ...
- React Native : 自定义视图
代码地址如下:http://www.demodashi.com/demo/11686.html 这次我们要做的仿 新闻头条 的首页的顶部标签列表,不要在意新闻内容. 请求数据 首先做顶部的目录视图,首 ...
- React中state和props分别是什么?
整理一下React中关于state和props的知识点. 在任何应用中,数据都是必不可少的.我们需要直接的改变页面上一块的区域来使得视图的刷新,或者间接地改变其他地方的数据.React的数据是自顶向下 ...
- vuex直接修改state 与 用dispatch/commit来修改state的差异
一. 使用vuex修改state时,有两种方式: 1.可以直接使用 this.$store.state.变量 = xxx; 2.this.$store.dispatch(actionType, pay ...
- react 中state与props
react 中state与props 1.state与props props是只读属性,只有在组件被实例化的时候可以赋值,之后的任何时候都无法改变该值.如果试图修改该值时,控制台会报错 only re ...
- react --- React中state和props分别是什么?
props React的核心思想就是组件化思想,页面会被切分成一些独立的.可复用的组件. 组件从概念上看就是一个函数,可以接受一个参数作为输入值,这个参数就是props,所以可以把props理解为从外 ...
- vuex直接修改state 与 用commit提交mutation来修改state的差异
一. 使用vuex修改state时,有两种方式: 1)可以直接使用 this.$store.state.变量 = xxx; 2)this.$store.dispatch(actionType, pa ...
随机推荐
- CSS mask-image 实现边缘淡出过渡效果
使用场景 在生产环境中,遇到一个需求,需要在一个深色风格的大屏页面中,嵌入 Google Maps.为了减少违和感,希望地图四边能够淡出过渡. 这里的"淡出过渡",关键是淡出,而非 ...
- 【JavaScript】JQuery-Ztree 演示demo
使用CDN引用JQuery和ZTree的资源 demo页的代码: <!DOCTYPE html> <html lang="en"> <head> ...
- 【VMware】 桥接网路发现无法Ping通原因
解决方案参考: https://blog.csdn.net/weixin_33856370/article/details/92420910 设置好的同网段的三台虚拟机这次开机连不上网了 仔细发现VM ...
- python3.9的nogil版本编译pytorch2.0.1源码报错——失败
关于python3.9的nogil版本参看: PEP 703作者给出的一种no-GIL的实现--python3.9的nogil版本 ================================== ...
- 系统IO常用函数接口
本文整理归纳了几种常用的系统IO的函数借口,以供读者查阅使用 目录 系统IO与标准IO的区别 打开文件:open 关闭文件:close 文件读取:read 文件写入:write 位置偏移:lseek ...
- 附037.Kubernetes_v1.29.2高可用部署架构二
部署组件 该 Kubernetes 部署过程中,对于部署环节,涉及多个组件,主要有 kubeadm .kubelet .kubectl. kubeadm介绍 Kubeadm 为构建 Kubernete ...
- C++11新特性(二):语言特性
C++11新特性 nullptr空指针 nullptr空指针的使用可以规避掉以往设置为NULL的风险.NULL在编译器中常常被设置为0或者其它数字,此时判断指针是否为NULL,即判断指针类型是否能够等 ...
- 初三年后集训测试T3---树上的宝藏
初三年后集训测试 $T 3 $ 树上的宝藏 $$HZOI$$ ·题意 · \(Description\) 蒜头君有一棵 \(n\) 个节点的树(即 \(n\) 个节点, \(n−1\) 条边的无向连通 ...
- P10789 [NOI2024] 登山
思路: 我们可以对于每个 \(i\) 找到它能跳到的最远的点和最近的点,倍增求一下 \(k\) 级祖先即可,令 \([l_i,r_i]\) 新表示 \(i\) 能跳到其祖先中深度在 \([l_i,r_ ...
- 外挂级OCR神器:免费文档解析、表格识别、手写识别、古籍识别、PDF转Word
TextIn Tools是一款免费的在线OCR工具,支持快速准确的文字和表格识别,手写.古籍识别,提供PDF转Markdown大模型辅助工具,同时支持PDF.WORD.EXCEL.JPG.PPT等各类 ...