当前位置: 首页 > news >正文

首页其他乐山网站seo

首页其他,乐山网站seo,wordpress iis设置方法,哪家公司制作网站React 基础巩固(三十一)——Redux 一、Redux是个纯函数 概念 纯函数(确定的输入一定产生确定的输出,函数在执行过程中不产生副作用): 在程序设计中,若一个函数符合以下条件,那么这个函数就被称为纯函数…

React 基础巩固(三十一)——Redux

一、Redux是个纯函数

  1. 概念

纯函数(确定的输入一定产生确定的输出,函数在执行过程中不产生副作用):

  • 在程序设计中,若一个函数符合以下条件,那么这个函数就被称为纯函数
  • 此函数在相同的输入值时,需产生相同的输出
  • 函数的输出和输入值以外的其他隐藏信息或状态无关,也和由I/O设备产生的外部输出无关
  • 函数不能有语义上可观察的函数副作用,诸如“触发事件”,使输出设备输出或更改输出值以外物件的内容

副作用:本身是医学概念,在计算机科学中,表示在执行一个函数时,除了返回函数值外,还对调用函数产生了附加的影响。例如,修改了全局变量,修改参数或改变外部的存储。

  1. 作用
  • 可以放心的编写和使用
  • 保证函数的纯度,只需关心相应的业务逻辑,无需关心传入的内容是如何获得的或者依赖其他的外部变量是否已经发生了修改
  • 确定输入内容不会被任意篡改,有确定的输入,有确定的输出。

二、为什么需要Redux

  1. 面临的问题:
  • 状态多:JS开发的应用程序越来越复杂,需要管理的状态越来越多,这些状态包括:服务器返回的数据、缓存数据、用户操作产生的数据等等,也包括一些UI的状态,比如某些元素是否被选中,是否显示加载动效,当前分页
  • 管理难:管理不断变化的state是非常困难的,状态之间相互存在依赖,一个状态的变化会引起另一个状态的变化,View页面也有可能会引起状态的变化。随着应用程序越来越复杂,state的变化变得难以控制和追踪
  • 靠自己:React是在视图层帮助我们解决了DOM的渲染过程,但是State依然留给我们自己来管理。无论是组件定义的state,组件之间的通信,还是通过Context进行的数据共享,这些维护的工作最终由我们自己来决定,而非React。
  1. Redux的出现,能帮助我们管理State,Redux是JS的状态容器,提供了可预测的状态管理,Redux除了和React配合使用外,也可以和Vue等其他界面库一起使用。

三、Redux的核心理念

  1. Store

    定义统一的规范来存储数据

    const initialState = {books: [{name:'book1', price: 35},{name:'book2', price: 35},{name:'book3', price: 35},{name:'book4', price: 35}]
    }
    
  2. action

    Redux要求必须通过action来更新数据。action是一个普通JS对象,用来描述此次更新的type和content,所有数据的变化必须通过派发action来更新。

    const action1 = { type: "ADD_BOOK", info:{ name:"book5", price:99}}
    const action2 = { type: "INC_PRICE", index: 0}
    const action3 = { type: "CHANGE_NAME", playload:{ index: 1, newName:"book666"}}
    
  3. reducer

    reducer是一个纯函数,将传入的state和action结合起来生成一个新的state。

  • store/index.js
const { createStore } = require("redux");// 初始化数据
const initialState = {name: "test",title: "hello redux",
};// 定义reducer函数:纯函数
// 两个参数:
// 1.store中上一次的值;
// 2.本次需要更新的action
// 返回值:它的返回值会作为sto re之后存储的state
function reducer(state = initialState, action) {console.log("reducer:", state, action);// 有新数据进行更新的时候,那么返回一个新的stateif (action.type === "change_name") {return {...state,name: action.name,};} // 若没有新数据更新,返回之前的statereturn state;
}// 创建的store
const store = createStore(reducer);module.exports = store;
  • test.js
const store = require("./store");console.log(store.getState());// 使用action修改store中的数据
const nameAction = {type: "change_name",name: "change name test",
};
store.dispatch(nameAction);console.log(store.getState());const nameAction2 = {type: "change_name",name: "change name test111",
};
store.dispatch(nameAction2);console.log(store.getState());
http://www.15wanjia.com/news/10026.html

相关文章:

  • 稳定一天赚200块游戏湖北seo整站优化
  • 卖辅助网站怎么做经典软文文案
  • 汕头免费建站公司搜索引擎网站大全
  • app下载推广厦门最好的seo公司
  • 厦门建设工程信息网seo白帽优化
  • 游戏网站怎么做关键词推广排名软件
  • wordpress怎么ftp建站2020年关键词排名
  • 二级网站怎样被百度收录澳门seo推广
  • 中山市小榄新意网站设计有限公司seo公司资源
  • wordpress 分离seo引擎优化专员
  • 北京大型网站制作公司成都品牌推广
  • 东莞58同城做网站电话企业网络营销业务
  • 短视频制作软件免费四川seo平台
  • 最近几年做电影网站怎么样营销平台
  • 网上课程网站做营销型网站哪家好
  • 做网站全包企业seo优化
  • 怎么自己在电脑上做网站百度查询入口
  • 做环氧地坪工程网站微信运营技巧
  • 空间设计网站关键词查找的方法有以下几种
  • 深圳蚂蚁网络网站建设互联网广告怎么做
  • 网站建设需要的语言seo关键词排名优化销售
  • 网站页面关键字在哪里360手机优化大师安卓版
  • 浙江省建设信息广州宣布5条优化措施
  • asp企业营销型网站建设seo培训一对一
  • ecs服务器如何做网站百度软件应用市场
  • google网站优化工具谷歌seo营销
  • 临沂做四维和美家网站广告优化师工资一般多少
  • 会员卡管理系统制作专业seo站长工具全面查询网站
  • 外贸西班牙语网站建设seo优化教程自学网
  • wordpress插件安装目录网络优化是做什么的