【React】React中编写CSS,Redux,RTX

news2024/12/26 3:20:04

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • React中编写CSS
    • 内联样式
    • 普通css
    • css modules
    • css in js
    • 动态添加class
  • Redux
    • JS纯函数
    • 如何创建redux
    • 修改store中的数据
    • 订阅store中的数据
    • 通过actionCreatores封装
    • react-redux
    • redux发送异步请求
    • RTK
    • RTK生成异步

React中编写CSS

内联样式

  • style接受一个采用小驼峰命名属性的JS对象,而不是CSS字符串,可以动态获取当前state中的状态
  • 缺点:1.写法上面需要使用驼峰2.编写样式没有提示3.大量的样式,代码混乱4.某些样式无法编写(比如伪类、伪元素)
    在这里插入图片描述

普通css

  • 普通css通常会编写到一个单独的文件,之后再进行引入
  • 但是组件化开发中普通的css都属于全局的css,css没有作用域,样式之间会相互影响
    在这里插入图片描述

css modules

  • 需要把样式文件修改成.module形式,css modules解决了局部作用域的问题,但是引用的类名不能使用连接符号-,所有的className必须使用style.className的形式来编写

在这里插入图片描述

在这里插入图片描述

css in js

  • CSS in js是一种模式,其中CSS由js生成的而不是在外部文件中定义;注意此功能不是React的一部分,由第三方库提供
  • 目前比较流行的是styled-components
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 高级用法,可以引入外部变量
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

动态添加class

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Redux

JS纯函数

  • 纯函数:确定的输入,一定会产生确定的输出;在函数的执行过程中,不能产生副作用;在React中要求我们无论是函数还是一个class声明的组件,必须要像纯函数一样,保护它们的props不被修改。
  • 由于项目越来越复杂,状态之间互相会存在依赖,一个状态的变化会引起另一个状态的变化,view页面很有可能引起状态的变化,非常难以控制。
  • Redux就是一个帮助我们管理State的容器,Redux是js的状态管理容器。

如何创建redux

在这里插入图片描述
在这里插入图片描述

修改store中的数据

在这里插入图片描述
在这里插入图片描述

订阅store中的数据

在这里插入图片描述
在这里插入图片描述

通过actionCreatores封装

在这里插入图片描述

react-redux

在这里插入图片描述

  • 通过这个库,可以将我们的react的jsx页面和Redux更方便的联系在一起
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

redux发送异步请求

  • 通过安装redux-thunk,dispatch只能返回一个对象,如果加了redux-thunk中间件,就可以返回函数,从而实现异步请求
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果要把store拆分,通过combineReducers实现在这里插入图片描述

RTK

通过RTK,我们就可以简化Redux创建多个jsx文件的操作了
在这里插入图片描述
在这里插入图片描述

通过createSlice直接写store文件
在这里插入图片描述
在index.js中通过configureStore直接使用即可
在这里插入图片描述
现在简化完redux的操作之后,要将redux和react连接起来,就要通过react-redux的provider和connect
在外层index.js中
在这里插入图片描述
然后在app.jsx中
在这里插入图片描述

  • 如果要加方法的话
    在这里插入图片描述
    在这里插入图片描述

RTK生成异步

  • 写store的js,将reducer导出
    在这里插入图片描述

在index.js导入
在这里插入图片描述
请求数据
在store中通过createAsyncThunk获取数据
在这里插入图片描述

————————————————————————
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国联通泛终端技术生态创新成果发布,移远通信荣获业务与应用板块突出贡献奖

6月7日,以“轻联万物 共赴星海”为主题的2023中国联通泛终端技术生态创新成果发布会在北京举行。 会上,中国联通泛终端技术生态创新联合实验室对一年来作出突出贡献的单位进行了嘉奖。移远通信凭借其在物联网产品及应用解决方案等领域的深厚积累和突出贡…

KubeSphere 社区双周报 | OpenFunction 发布 v1.1.0 | 2023.5.26-6.8

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.05.26-2023.…

将本地项目推到gitee上

查看原来仓库地址 git remote -v删除原来仓库地址 git remote rm origin # git remote rm origin https://gitee.com/zhangxiaoQ/large-file-upload.git添加需要推送的仓库 git remote add origin https://gitee.com/stevencmu/large-file-upload.git

Unity Scene界面出好多黄线解决办法

点下 Button下的Visualize就消失

创建可引导的 macOS 安装器(可启动U盘)

Apple官网下载的macOS镜像,只是一个安装包,不带引导不能直接安装到空白mac机器的。 1、首先,你必须要有台能正常运行macOS的mac pc。 2、下载macOS Sierra 10.12 El Capitan 10.11 Yosemite 10.10 Mountain Lion 10.8 Lion 10.7 点按以…

智能工厂MES系统“超级大脑”,助力数字化工厂生产流程

随着现代工业的不断发展,数字化工厂已经成为了生产制造的新趋势。而在实现数字化转型过程中, MES系统则显得尤为重要。 那么,MES系统究竟能为数字化工厂带来什么神奇的魔力呢?下面就来一探究竟。 物料管理 MES系统可以提供物料的…

MySQL(七):一文带你学透 mysql运算符 (超详解)

运算符 前言一、算术运算符1、加法与减法运算符2、乘法与除法运算符3、求模(求余)运算符 二、比较运算符1、等号运算符2、安全等于运算符3、不等于运算符4、空运算符5、非空运算符6、最小值运算符7、最大值运算符8、BETWEEN AND运算符9、IN运算符10、NOT…

Prefix-Tuning论文解读

论文名称:Prefix-Tuning: Optimizing Continuous Prompts for Generation 论文地址:https://arxiv.org/pdf/2101.00190.pdf 论文代码:https://github.com/XiangLi1999/PrefixTuning 想搞prompt,看了好多篇,挑着记录…

【微前端架构】微前端——功能团队中缺失的一块拼图

在任何合法的前端开发团队中,提高可扩展性和敏捷性很少会成为头等大事。在处理大型、复杂的产品时,如何确保快速、频繁地交付同时包含后端和前端的功能?像后端那样将前端单体分解成许多更小的部分似乎是答案。如果执行得当,微前端…

IO500榜单最新出炉,HPC性能天花板提升15倍

近日,存储圈又有炸裂新消息。 高性能计算(HPC)领域最具影响力的IO500最新一期榜单公布,以华为OceanStor Pacific分布式存储为核心底座的Cheeloo-1系统表现一骑绝尘,在最重要的10节点榜单中以创纪录的13万总得分位列第…

基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

基于jspmysqlmybatisSpring boot简单学生成绩信息管理系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方…

容器(第五篇)docker-compose

docker-compose用来单机上编排容器(定义和运行多个容器,使容器能互通),Eg:前端和后端部署在一台机器上,现在直接通过编写docker-compose文件对多个服务(可定义依赖,按顺序启动服务&a…

Burpsuite+Proxifier抓取exe数据包

本文转载与: https://mp.weixin.qq.com/s?__bizMzg4NTUwMzM1Ng&mid2247504341&idx1&sndb06bdc7434a34dd69930e3a7e3d8114&chksmcfa575c6f8d2fcd0830a7bb5d5c11b6e8a1465688d8f59cb2fd7b04685210ac2beae3bec18c2&mpshare1&scene23&srci…

vscode Delete `␍⏎·····`

在公司电脑首次拉取代码的时候,好多代码报错,在网上查了博客,确定是换行导致,但是参考网上的解决办法,没有解决,不管是设置 auto 还是命令行执行什么什么的,都不管用 下面介绍我的办法 首先&a…

葡萄目标检测相关论文和数据集

文章目录 2018Computer Vision and Machine Learning for Viticulture Technology 2020Grape detection, segmentation, and tracking using deep neural networks and three-dimensional association(Computers and Electronics in Agriculture) 2021Gr…

Vue中如何进行图片裁剪与上传?

Vue中如何进行图片裁剪与上传? 在Web开发中,经常需要使用图片,有时候需要对图片进行裁剪和上传,Vue作为一种流行的前端框架,提供了很多方便的工具和插件来帮助开发者实现这些功能。 图片裁剪 Vue中提供了很多图片裁剪…

采用SSM框架实现登录拦截,分页,批量删除的功能

本案列采用的技术有后端spring/springmvc/mybatis/jquery等技术&#xff0c;前端采用bootstrapjsp 项目结构如下图 依赖pom.xml文件 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version>…

怎样的低代码平台才算是一个好用的低代码平台?

随着数字化转型的加速&#xff0c;低代码平台已经成为了企业数字化转型的一个重要工具。低代码近几年是一个很热门的概念&#xff0c;市场对低代码的需求也不断增加&#xff0c;但到底什么样的低代码平台才算是一个好用的低代码平台&#xff1f; 一个好用的低代码平台应具备以…

Python源码:火柴棒摆数字有6根火柴棒,列出所有能摆出的自然数

题&#xff1a;用自定义函数&#xff0c;火柴棒摆数字有6根火柴棒&#xff0c;列出所有能摆出的自然数&#xff0c; 要求火柴棒正好摆完 解析&#xff1a; 1、0-9这十个数字&#xff0c;每个数字分别需要的火柴根数如下 2、用6根火柴摆出的最小数字是&#xff1a;0 用6根火柴…

深入理解CSS字符转义行为

深入理解CSS字符转义行为 深入理解CSS字符转义行为 前言为什么要转义&#xff1f;CSS 转义什么是合法css的表达式 左半部分右半部分 练习参考链接 前言 在日常的开发中&#xff0c;我们经常写css。比如常见的按钮: <button class"btn"></button>&am…