react 有没有类似vue中watch这样的api?
就是 当组件里state 里的数据发生变化
可以监听到这个数据的变化 当数据发生变化的时候做一些事情 比如ajax请求 ?
初学react 用vue的时候会用watch 和computed 去监听数据发生变化 但是react 里不知道如何实现!
谢邀。
React 本身只解决视图层。题主提的是一个数据层面的问题。
通常情况下,React 的状态都是手动 setState 变化的,React 不监听数据变化。
在实践中可以尝试在 state 里放一个定义了 getter 和 setter 的对象,在 setter 里来发这个请求,响应后再 setState 回去。。。
所以要么 mobx 了解一下?
如果单纯react的话 如果状态发生变化,会触发组件生命周期中的如下方法:
componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)
如果使用redux等的话,一般状态变化是由dispatch引起的,你在dispatch的回调中执行你想要的就可以了。
作者:季严亮
链接:https://www.zhihu.com/question/64160875/answer/217452961
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
react 有没有类似vue中watch这样的api?的更多相关文章
- vue中Axios请求豆瓣API数据并展示到Swipe中
vue中Axios请求豆瓣API数据并展示到Swipe中 1.首先是安装Axios: 安装方法cnpm install axios --save 等待npm安装完毕: 2.在main.js中引入axi ...
- React中循环渲染类似Vue中 的v-for
17==>循环数组 类似v-for import React, { Component } from "react"; export default class CharSh ...
- react 实现类似vue中的<keep-alive>的功能,并解决antd-mobile切换回来时的空白
在移动端的spa页面中,只要使用到了路由就很有必要使用到状态保存的功能,这样才能保证在页面进行切换的时候,让用户可以看到刚才滑动的地方,让用户的体验更加友好.这儿我找到了react-router-ca ...
- vue中的import {} from '@/api/api'
例:import {queryDepartTreeList, searchByKeywords} from '@/api/api' 首先查看vue.config.js文件,在这个文件里面定义了定义了@ ...
- Vue中axios的封装和api接口的统一管理
更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...
- 六、React 键盘事件 表单事件 事件对象以及React中的ref获取dom节点 、React实现类似Vue的双向数据绑定
接:https://www.cnblogs.com/chenxi188/p/11782349.html 事件对象 .键盘事件. 表单事件 .ref获取dom节点.React实现类似vue双向数据绑定 ...
- 理解MVVM在react、vue中的使用
理解MVVM在react.vue中的使用 一:什么是MVC.为什么不用MVC 1:MVC的含义: M(modal):是应用程序中处理数据逻辑的部分. V (view) :是应用程序中数据显示的部分. ...
- React 事件对象、键盘事件、表单事件、ref获取dom节点、react实现类似Vue双向数据绑定
1.案例实现代码 import React, { Component } from 'react'; /** * 事件对象.键盘事件.表单事件.ref获取dom节点.react实现类似Vue双向数据绑 ...
- 去除富文本中的html标签及vue、react、微信小程序中的过滤器
在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容:然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过 1.富文本去除html标签 去除htm ...
随机推荐
- Jenkins总结2-部署maven项目
1. 部署Maven项目 1.1 新建项目 选择新建任务 输入任务名称,并选择构建一个Maven项目.如果你的页面没有看到“构建一个maven项目”,则需要安装Maven Integration插件. ...
- 40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!
本文首发于量化投资与机器学习 转载于 https://mp.weixin.qq.com/s/KaB_7oXZf0_IV97y0pRPmQ 前言 最近,这种动态排序条形图视频超级火,如下图: ...
- TearmQuery()
lucene 中的 TearmQuery() 在.search( tearmQuery, q)查询时 比较矫情 q只能是小写
- Python多线程-ThreadLocal
参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017630786314240#0 ThreadLocal ThreadLocal变量虽然是 ...
- python种类
JPython IronPython CPython JavaScriptPython 等等. 这些python的区别是他们隶属于不同的厂商,而我们所说的python通常是指CPython, 因为不同 ...
- python5.1文件的读取
fh1=open(r"C:\222.txt","r")#用open函数读取文件,“r”进行转义,fh1文件句柄data=fh1.read()#把读取的句柄赋值给 ...
- 解放双手!用 Python 控制你的鼠标和键盘
在工作中难免遇到需要在电脑上做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己去刷网页打游戏,岂不是很爽?] 很多人学习python,不知道 ...
- VisualSVN Server修改默认端口号 443->8443
- JS 仿京东放大镜
css代码 body{ margin:; } .box { width: 1210px; position: relative; background-color: pink; margin: 0 a ...
- c++之广度优先搜索
广度优先搜索BFS(Breadth First Search)也称为宽度优先搜索,它是一种先生成的结点先扩展的策略. 在广度优先搜索算法中,解答树上结点的扩展是按它们在树中的层次进行的.首先生成第一层 ...