首页 > 其他分享 >反冲简介

反冲简介

时间:2022-09-07 00:23:12浏览次数:89  
标签:简介 应用程序 原子 导入 反冲 组件 选择器

反冲简介

畏缩 是 Facebook 的 React 实验状态管理系统。它提供了几种开箱即用的功能,这些功能仅靠 React ⚛️ 很难实现。

Recoil 可让您创建一个数据流图,该图流自 原子 通过 选择器。

后坐力有

  1. 原子

原子是状态的单位。它们是可更新和可订阅的:当一个原子被更新时,每个订阅的组件都会用新的值重新渲染。它们也可以在运行时创建。原子可以用来代替 React 本地组件状态。如果多个组件使用相同的原子,则所有这些组件共享它们的状态。

一个原子由两个字段组成。

  • 钥匙 — 唯一键(相对于其他原子/选择器)
  • 默认 — 默认值

2. 选择器

一个 选择器 是一个接受原子或其他选择器作为输入的纯函数。当这些上游原子或选择器更新时,将重新评估选择器功能。组件可以像原子一样订阅选择器,然后在选择器更改时重新渲染。

为什么反冲?

  1. Recoil 就像 Redux 提供了一个 全局状态 .使用 Recoil,我们不必将状态作为 props 传递给子组件以便在组件之间共享它们(这个概念称为 支柱钻孔 )。
  2. 一旦我们将一个组件连接到任何 原子 或者 选择器, 他们订阅了它,因此对该状态的任何更新都将在应用程序中反映到它被使用的任何地方。
  3. 有后坐力 选择器, 我们可以同步或异步转换状态,并在应用程序的任何地方使用派生状态。

设置使用反冲创建 React App。

创建一个新项目

步骤在以下链接中。

  • 创建反应应用
  • 创建 React Native 应用程序

⚙️ 安装依赖包。

  1. 安装反冲

    npm 安装反冲
    或者
    纱线加反冲

  1. 创建一个原子来保存(图像,加载器)值和选择器来处理状态值。

    状态/images.js 从“反冲”导入{原子,选择器}; 导出 const imagesState = atom({
    键:“图像”,
    默认: [],
    }); 导出常量 loadingState = atom({
    键:“加载”,
    默认值:假,
    }); 导出 const lengthOfImages = 选择器({
    键:“图像计数”,
    得到:({得到})=> {
    const state = get(imagesState).length;
    返回状态;
    },
    });

  2. 像普通的 useState 一样使用 useRecoilState。

    应用程序.js 导入 { useRecoilState, useRecoilValue } from "recoil";
    从“./state/images”导入 { loadingState, imagesState, lengthOfImages };
    函数应用程序(){
    const [图像,setImages] = useRecoilState(imagesState);
    const [加载,setLoading] = useRecoilState(loadingState);
    常量 hasEven = useRecoilValue(lengthOfImages); const fetchImages = async () => {
    设置加载(真);
    拿来(”https://picsum.photos/v2/list?page=1&limit=9 ")
    .then((响应) => response.json())
    .then((responseJson) => {
    setImages(responseJson);
    设置加载(假);
    })
    .catch((e) => console.log(e));
    }; 返回 (

    畏缩

    获取图像 {加载 &&

    加载...

    }

    获取 {hasEven} 图像

    {images.map(({ download_url, id, author }) => ( {作者} ))}
    ); } 导出默认应用程序; index.js 从“反应”导入反应; 从“react-dom”导入 ReactDOM; 导入“./index.css”; 从“./App”导入应用程序; 从“./reportWebVitals”导入reportWebVitals; 从“反冲”导入{ RecoilRoot }; ReactDOM.render( , document.getElementById("root") ); 报告WebVitals();

应用程序输出

项目结构

GitHub — yogeshwaran-ramesh/react-recoil-app

参考:

了解 React 中的 Recoil

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/20662/07510700

标签:简介,应用程序,原子,导入,反冲,组件,选择器
From: https://www.cnblogs.com/amboke/p/16663825.html

相关文章

  • K8s简介之什么是K8s
    1.概述欢迎来到K8s入门课程。Kubernetes,也被称为K8s或Kube,是谷歌推出的业界最受欢迎的容器编排器。本K8s教程由一系列关于K8s的文章组成。在第一部分,我们将讨论什么是K8s......
  • 从零开始配置vim(21)——lsp简介与treesitter 配置
    截止到上一篇文章,我们配置了neovim的很多内容了。具备了一些编辑器的常用功能了,而且可以胜任日常的文档编辑工作了。但是想作为一个可靠的代码编辑器还缺少重要的一环,即代......
  • Javascript简介
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • js-Promise的all、allSettled、any、race 方法简介
    1、all所有的Promise对象均成功后才会执行all中的then回调,否则返回的是最先rejected状态的值。constpromise1=newPromise((resolve,reject)=>{setTimeout((......
  • [HTML+CSS] 17.less 简介
    笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版目录less简介1、安装插件2、编写less3、less语法less注释父子关系嵌套变量其他4、混合函数其他5、......
  • [HTML+CSS] 10.定位的简介
    笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版目录定位的简介1.相对定位偏移量(offset)相对定位的特点2.绝对定位绝对定位的特点包含块(containingbl......
  • Python 简介 #2。课
    Python简介—第2课print("大家好!")大家好!我们已经离开了数据科学训练营的第二周。在本课中,我们快速介绍了数据科学项目中经常使用的Python语言。我将尝试为您......
  • 提供实时机器学习预测服务简介
    提供实时机器学习预测服务简介实时机器学习越来越受到用例的关注,例如使用编码为特征的近期会话活动的实时推荐模型、音乐会门票预订/拼车应用程序中使用的激增价格预测算......
  • 《跟着星仔学C语言》简介
    [前言]  本人男,外号星仔,80后,国内重点大学毕业,对技术有执著的追求.一生碌碌,未成大气候,唯一欣慰的是技术方面不曾落后,看上去还挺牛X.  学习C/C++需要耐心......
  • JavaScript-6 简介:属性、方法和内置对象
    JavaScript-6简介:属性、方法和内置对象特性当我们向JavaScript程序添加一条新数据时,浏览器会将其保存为该数据类型的一个实例。并且所有数据类型都可以访问传递给每个......