
React Query 因其极大地简化了 React 应用程序中的数据获取而受到许多人的喜爱。但是它并不是数据获取库,它应该叫 异步状态管理器 ,它可以管理任何形式的异步状态——只要它得到一个 Promise。
从本质上讲,React Query 基于查询键值为您管理查询缓存。 只要键值是可序列化的,并且对查询的数据来说。它是唯一的,就可以使用它。虽然支持用字符串,但还是建议使用数组形式,因为内部最终还是会转化成数组。
React Query 很聪明,它会选择策略点来触发重新获取数据。
数据转换也是前端经常遇到的问题,因为API返回的数据可能不是我们刚好能用的,react-query也提供了转换器,并且也只在有数据的时候才会被调用。
因为每次渲染都会执行,如果转换数据的方法开销比较大,建议使用useCallback将select函数缓存起来。
初始化数据,也就是数据没有缓存时直接展示的内容,当缓存中有该数据时,则不会生效。
NextJS在React-Query的使用
react 本来就可以通过数据来对页面进行更新渲染。
我写了一个例子,你可以看下。我使用setInterval来模拟了数据的更新。
网页链接
import React, { Component } from 'react';import { render } from 'react-dom';
import Hello from '/Hello';
import '/stylecss';
class Test extends Component {
render() {
return (
<div>{thispropsdata}</div>
)
}
}
class App extends Component {
constructor() {
super();
thisdata = 1;
thisstate = {
name: 'React'
};
}
componentDidMount() {
setInterval(() => {
thissetState({ data: thisdata++ })
}, 2000)
}
render() {
return (
<div>
<Hello name={thisstatename} />
<p>
Start editing to see some magic happen :)
</p>
<Test data={thisstatedata} />
</div>
);
}
}
render(<App />, documentgetElementById('root'));
RN自带了一个非常优雅的网络 *** 作库fetch,下面的这个例子从gankio的接口拿到了美女的url然后通过state 传给列表组件,列表里返回组件显示。网络数据获取方法写在componentDidMount中,这个方法是组件生命周期中需要调用的一个方法。
class AwesomeProject extends Component {// 初始化模拟数据
constructor(props) {
super(props);
const ds = new ListViewDataSource({rowHasChanged: (r1, r2) => {r1 !== r2}});
thisstate = {
dataSource: ds,
load:false,
text:''
};
}
//耗时 *** 作放在这里面
componentDidMount(){
thisgetNet();
}
getNet(){
fetch('>
设置非标准属性
用attr()函数。
示例
/
取消勾选单选框
/
function cancelRadio(){
$("a[type='radio']")attr("flag", "true");
}
/
取消勾选复选框
/
function cancelCheckbox(){
$("a[type='checkbox']")attr("flag", "true");
}
react 中用next 传参,获取query参数
传:Routerpush({pathname:'/',query:{id})
解:1locationserach
2Routerrouterquery方法
目的 : 获取文本框的值
工具 : reactjs
要想获取文本框的值,首先我们需要看一下官方文档的解释:
这里的意思是说当文本框的内容改变的时候,文本框的输入的内容就会作为一个参数进行传递。因此我们就可以获取到文本框里面的内容就好了。
提供以下代码可供参考使用:
constructor (props) {super (props)
thisstate = {
screen: thisinitScreen(),
txtValue: null,
dataSource: new ListViewDataSource({
rowHasChanged: (row1, row2) => row1 !== row2
}),
loaded: false
}
}
。。。。
<TextInput
selectTextOnFocus = {true}
onChangeText={(text) => {
thisstatetxtValue = text
thisgetContent()
}}
。。。
/获取文本框中的值/
getContent () {
ToastAndroidshow(thisstatetxtValue, ToastAndroidLONG)
}
比如如下代码:
父组件:
class Father extends Component {
construtor(props){
super(props);
thisstate={
name: 'Peter',
age: '26'
}
}
onChangeState(stateName){
thissetState(stateName)
}
render(){
<p>姓名:{thisstatename}</p>
<p>年龄:{thisstateage}</p>
<Child onClicked={thisonChangeStatebind(this)}/>
}
}
子组件:
class Child extends Component {
render(){
<Button onClicked={()=>thispropsonClicked({name: 'John'})}/>
}
}
你获取到数据后,然后调用setstate方法,改变状态,然后你的组件要定义个接受状态改变的地方,比如value={thisstate},一旦检测到你状态改变就会去render组件重新绘制,并且由于value的值和状态绑定所以value也会变。
以上就是关于React-Query介绍以及简单使用全部的内容,包括:React-Query介绍以及简单使用、react 点击下载,后台接到请求,在列表里添加数据,前端获取后台数据实现实时更新、如何在react中使用fetch调用接口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)