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 ...
随机推荐
- 【Docker】04 部署MySQL
从官网上拉取最新MySQL镜像: docker pull mysql:latest 创建并运行一个MySQL镜像的容器 docker run -itd --name mysql-test -p 330 ...
- ViT:拉开Trasnformer在图像领域正式挑战CNN的序幕 | ICLR 2021 —— An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
论文地址: https://arxiv.org/abs/2010.11929 Github地址: https://github.com/google-research/vision_transform ...
- 进程的CPU绑定是否有意义 —— 进程的 CPU 亲和性
好多年前就学习过 进程的 CPU 亲和性这个概念,说直白些就是CPU的进程绑定,也就是指定某个进程绑定到某个CPU核心上,以此提高进程切换时缓存的命中率,加快进程的运算速度. 虽然在编程的时候中会遇到 ...
- python报错:ImportError: cannot import name 'Literal' from 'typing'
原因: Literal 只支持python3.8版本以上的环境,需要把python3.7升级到3.8版本以上. 参考: https://blog.csdn.net/yuhaix/article/det ...
- 【转载】 四轴PID算法:单环和串级
原文地址: http://m.elecfans.com/article/1122372.html --------------------------------------------------- ...
- 学习使用docker-compose搭建Redis哨兵集群
搭建的记录 Redis的容器部署后,redis-server的默认安装目录为 /usr/local/bin. docker volumes 映射的文件与本地的文件共享,修改本地文件后,需要重启dock ...
- Python-目标检测-将xml文件转换成.txt文件
代码说明:labels文件夹是工程下的一个文件夹,里面存放的是一些xml文件. 然后我们将这些xml文件中的内容取出来,放在路径path1的文件名下.这样也就完成了xml文件到txt文件的转化. 该代 ...
- 恶补基础知识:Java 栈与队列详解
@ 目录 前言 简介 栈 Java实现栈的示例代码: 栈的主要应用场景包括: 队列 Java实现队列的示例代码: LinkedList中的add方法和offer方法的区别 队列主要应用场景: 总结 前 ...
- CC2530系列课程 | IAR新建一个工程
之前录制了无线传感网综合项目实战课程,这个课程非常适合应届毕业生和想转行Linux的朋友,用来增加项目经验. 其中一部分内容是关于CC2530+zigbee的知识,后面会更新几篇关于cc2530的文章 ...
- Oracle——navicat连接Oracle数据库报错(12514)
2024/07/22 1.问题描述 2.解决办法 3.参考材料 1.问题描述 与其他厂商做数据对接时,对方提供相关视图,我navicat连接Oracle数据库时报错,其报错代码如下: ORA-1251 ...