React-Query介绍以及简单使用

React-Query介绍以及简单使用,第1张

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调用接口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10628595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存