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

这篇具有很好参考价值的文章主要介绍了【React】React中编写CSS,Redux,RTX。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

React中编写CSS

内联样式

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

普通css

  • 普通css通常会编写到一个单独的文件,之后再进行引入
  • 缺点组件化开发中普通的css都属于全局的css,css没有作用域,样式之间会相互影响
    【React】React中编写CSS,Redux,RTX

css modules

  • 需要把样式文件修改成.module形式,css modules解决了局部作用域的问题,但是引用的类名不能使用连接符号-,所有的className必须使用xxx.xxxx的形式来编写
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX
    这种类的写法是不行的
    【React】React中编写CSS,Redux,RTX

css in js

  • CSS in js是一种模式,其中CSS由js生成的而不是在外部文件中定义;注意此功能不是React的一部分,由第三方库提供
  • 目前比较流行的是styled-components
    【React】React中编写CSS,Redux,RTX

标签模板字符串

正常的ES6模板字符串,这样使用
【React】React中编写CSS,Redux,RTX
而标签模板字符串,这样使用,相当于是调用了foo这个函数,然后把name和age传进去
【React】React中编写CSS,Redux,RTX
得到的结果是这样的,分成三块,然后里面的模板的值作为数组传递进去
【React】React中编写CSS,Redux,RTX
在代码中是这样拆分的
【React】React中编写CSS,Redux,RTX

如何在React中使用css in js

创建一个style.js的文件,然后建一个AppWrapper变量,这个就相当于是一个div,styled.div的意思是调用styled-components库中的div函数,然后后面写的就是使用模板标签字符串,来添加css样式
【React】React中编写CSS,Redux,RTX
在App.jsx中使用AppWrapper元素
【React】React中编写CSS,Redux,RTX

css in js 高级特性

  • 可以引入this.state中传入的变量
    【React】React中编写CSS,Redux,RTX
    通过写一个函数,调用传入的值参数为props的那个函数,自动回调从App组件传入的值
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX

attrs属性

通过attrs属性,可以自己给样式组件加属性
attrColor如果App组件没传值,就用blue,如果传值了,就用传过来的props
【React】React中编写CSS,Redux,RTX

继承styled

通过styled()括号里写需要继承的样式
【React】React中编写CSS,Redux,RTX

ThemeProvider全局提供样式

通过ThemeProvider的theme里面写上样式,每个样式组件的props.theme中就都有这个属性了,写法是驼峰式的,jsx中没有横线“-”的写法,都是转成驼峰式的
【React】React中编写CSS,Redux,RTX

动态添加class

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

Redux

如何创建redux

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

修改store中的数据

  • 通过store.getState()可以获取store中的数据,通过store.dispatch({
    type:“xxx”
    xxx:xxx
    }),调用这个方法之后,store就会将旧的state和dispatch中的对象一起传给reduer,然后传到reducer中实现更新,reducer返回一个state

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

const store = createStore(reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

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

订阅store中的数据

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

actionTypes的抽取

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

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

actionCreators的抽取

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

react-redux

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

  • 通过这个库,可以将我们的react的jsx页面和Redux更方便的联系在一起
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX

connect原理

  • 用在类组件中,函数组件直接使用useseletor获取值,usedispatch更新值就可以了
    【React】React中编写CSS,Redux,RTX
    下面是connect源码
    【React】React中编写CSS,Redux,RTX

redux发送异步请求

  • 通过安装redux-thunk,dispatch只能返回一个对象,如果加了redux-thunk中间件,就可以返回函数,从而实现异步请求
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX
    【React】React中编写CSS,Redux,RTX

实现Redux

import { createContext, useContext, useEffect, useState } from "react";
export function createStore(reducer) {
  var state; // 存储应用程序状态的变量
  var action; // 最近一次分发的操作

  state = reducer(state, action); // 使用初始状态和初始操作来初始化状态

  var subscribes = []; // 存储订阅函数的数组

  return {
    getState() {
      return state; // 返回当前的状态
    },

    dispatch(action) {
      state = reducer(state, action); // 使用传入的操作和当前状态来更新状态
      for (var sub of subscribes) {
        sub(); // 通知所有订阅者,状态已更新
      }
      return action; // 返回分发的操作
    },

    subscribe(f) {
      subscribes.push(f); // 将订阅函数添加到订阅数组中
      return () => {
        var idx = subscribes.indexOf(f);
        if (idx >= 0) {
          subscribes.splice(idx, 1); // 取消订阅函数
        }
      };
    },
  };
}

export function connnect() {}

var ReduxContext = createContext();
//创建一个名字,可以在开发工具中的组件树展示出来
ReduxContext.displayName = "ReduxContext";
export function Provider(props) {
  //<Provider store = {store}><App/></Provider>
  var { store, children } = props;
  var [Change, setChange] = useState(0);
  useEffect(() => {
    var unsub = store.subscribe(() => {
      setChange((Change) => Change + 1);
    });
    return unsub;
  }, []);

  return (
    <ReduxContext.Provider value={{ store: store }}>
      {children}
    </ReduxContext.Provider>
  );
}

export function useSelector(selector) {
  var store = useContext(ReduxContext).store;
  var state = store.getState();
  return selector(state);
}

export function useDispatch() {
  var store = useContext(ReduxContext).store;
  return store.dispatch;
}

————————————————————————
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章
文章来源地址https://www.toymoban.com/news/detail-480882.html

到了这里,关于【React】React中编写CSS,Redux,RTX的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【React】redux和React-redux

    🎀个人主页:努力学习前端知识的小羊 感谢你们的支持:收藏🎄 点赞🍬 加关注🪐 redux 适用于多交互、多数据源的场景。 使用redux的场景: 某个组件的状态需要共享 一个组件需要改变其他组件的状态时 一个组件需要改变全局的状态时 redux的三大原则: 整个应用的 state

    2024年02月06日
    浏览(43)
  • React中使用Redux (一) - 在React中直接使用Redux

    开始之前需要强调一下,redux和react没有直接的关系,你完全可以在React, Angular, Ember, jQuery, or vanilla JavaScript中使用Redux 。 尽管这样说,redux依然是和React库结合的更好,因为他们是通过state函数来描述界面的状态,Redux可以发射状态的更新, 让他们作出相应; 目前redux在react中使

    2024年01月23日
    浏览(46)
  • 在react中使用redux && react-redux的使用demo

    前言: redux是一种状态管理工具,可以存储和操作一些全局或者很多组件需要使用的公共数据。 平心而论,redux的使用对于新上手来说不太友好,多个依赖包的,多种api的结合使用,相对来说比做同样一件事的vuex用起来比较麻烦.不过,熟能生巧,用多了也就习惯了,下面是个人的一个d

    2024年02月06日
    浏览(40)
  • 【React】React——redux

    🚩🚩🚩 💎个人主页: 阿选不出来 💨💨💨 💎个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. 💨💨💨 💎目前开发的专栏: JS 🍭Vue🍭React🍭 💨💨💨 Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 redux是什么 redux是一个专门用于

    2024年01月15日
    浏览(32)
  • 什么是redux?如何在react 项目中使用redux?

    redux是一种用于管理JavaScript应用程序的状态管理库。它可以与React、Augular、Vue等前端框架结合使用,但也可以纯在JavaScript应用程序中独立使用。redux遵循单项数据流的原则,通过一个全局的状态树来管理应用程序的状态,从而使状态的变化更加可预测和已于维护。 redux的核心

    2024年02月15日
    浏览(31)
  • React | 再战Redux

    ✨ 个人主页:CoderHing 🖥️ React.js专栏:React.js 再战Redux 🙋‍♂️ 个人简介:一个不甘平庸的平凡人🍬 💫 系列专栏:吊打面试官系列  16天学会Vue  7天学会微信小程序  Node专栏 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ 👉 你的一键三连是我更新的最大动力!

    2024年02月12日
    浏览(35)
  • react-redux:

    index.js: reducer.js: 组件: src/index.js:

    2024年02月15日
    浏览(30)
  • React笔记(八)Redux

    一、安装和配置 React 官方并没有提供对应的状态机插件,因此,我们需要下载第三方的状态机插件 —— Redux。 1、下载Redux 在终端中定位到项目根目录,然后执行以下命令下载 Redux 2、创建配置文件 在 React 中,不会自动生成状态机的相关配置代码,因此,需要我们自己手动

    2024年02月10日
    浏览(30)
  • React(六) —— redux

    🧁个人主页:个人主页 ✌支持我 :点赞👍收藏🌼关注🧡 redux最主要是用作应用状态的管理。简言之,Redux用一个单独的常量状态树(state对象)保存这一整个应用的状态,这个对象不能直接被改变。当一些数据变化了,一个新的对象就会被创建(使用actions和reducers)这样就

    2023年04月16日
    浏览(28)
  • react-redux

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包