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

wordpress 双语站点wordpress 微信咨询菜单

wordpress 双语站点,wordpress 微信咨询菜单,济南网站建设公司川芎网络,遵义网站建设制作一、简介 react中的状态只属于某个组件。而Redux是一个全局管理js状态的架构#xff0c;让组件通信更加容易。 之前是状态在所有组件间传递#xff0c;而redux通过store来实现这个功能。 Redux特性#xff1a; 1.Single source Of truth#xff0c;通过store唯一维护状态…一、简介 react中的状态只属于某个组件。而Redux是一个全局管理js状态的架构让组件通信更加容易。 之前是状态在所有组件间传递而redux通过store来实现这个功能。 Redux特性 1.Single source Of truth通过store唯一维护状态。 2.可预测性state action - new state 3.纯函数更新store (纯函数 - 输入决定输出) 举个例子: 待办事项表 function todos(state [], action){switch(action.type){case ADD_TODO:return state.concat([{text: action.text, completed: false}]);case TOGGLE_TODO:return state.map((todo, idx) {action.index idx ? {text: todo.text, completed: !toto.completed}: todo})default:return state}} 二、核心概览 拿上图举个例子前端ui产生了deposit和withdraw2个事件store通过dispatcher分发对应的事件给reducer处理reducer处理后更新state。前端ui根据state重新渲染。 1.store Redux的状态机实现store 通过state存储状态通过dispatch传播事件通过Reducer处理事件。 2.action action表示变更事件。一般包含event type 和 context。 3.Reducer reducer是状态事件处理。 举个例子: 待办事项表 function todoApp(state initialState, action){switch (action.type){case ADD_TODO:return Object.assign({}, state, {todos:[...state.todos,{text: action.text,completed: false}]});default:return state;} } 三、使用示例 用redux实现一个简单计数器包括增加、减少功能。 import React from react; import {createStore} from redux; function run(){// store initial stateconst initialState { count: 0};// reducerconst counter (state initialState, action) {switch (action.type){case PLUS_ONE:return {count: state.count 1};case MiNUS_ONE:return {count: state.count - 1};case CUSTOM_COUNT:return {count: state.count action.payload.count};default:return state;} }// create storeconst store createStore(counter);// Action creatorfunction plusOne(){return {type: PLUS_ONE}}function minusOne(){return {type: MINUS_ONE};}function customCount(count){return {type: CUSTOM_COUNT, payload:{count}};}// 订阅redux 状态变更store.subscribe(() console.log(store.getState()));store.dispatch(plusOne());store.dispatch(minusOne());store.dispatch(customCount(5)); }export default () {divbutton onClick{run}Run/buttonp* 请打开控制台查看运行结果/p/div } bindActionCreators使用,工具类可以减少显示dispatch操作 import React from react; import {createStore, bindActionCreators} from redux; function run(){// store initial stateconst initialState { count: 0};// reducerconst counter (state initialState, action) {switch (action.type){case PLUS_ONE:return {count: state.count 1};case MiNUS_ONE:return {count: state.count - 1};case CUSTOM_COUNT:return {count: state.count action.payload.count};default:return state;} }// create storeconst store createStore(counter);// Action creatorfunction plusOne(){return {type: PLUS_ONE}}function minusOne(){return {type: MINUS_ONE};}function customCount(count){return {type: CUSTOM_COUNT, payload:{count}};}plusOne bindActionCreators(plusOne, store.dispatch);minusOne bindActionCreators(minusOne, store.dispatch);customCount bindActionCreators(customCount, store.dispatch);// 订阅redux 状态变更store.subscribe(() console.log(store.getState()));plusOne();minusOne();customCount(5); }export default () {divbutton onClick{run}Run/buttonp* 请打开控制台查看运行结果/p/div } 四、结合React使用 使用Connect功能将redux的action和state作为props传递给组件。 计数器组件使用样例 import React from react; import {createStore, bindActionCreators} from redux; import {Provider, connect} fomr react-redux;// store initial state const initialState {count: 0};// reducer const counter (state initialState, action) {switch (action.type){case PLUS_ONE:return {count: state.count 1};case MiNUS_ONE:return {count: state.count - 1};case CUSTOM_COUNT:return {count: state.count action.payload.count};default:return state;} } // create store const store createStore(counter); // Action creator function plusOne(){return {type: PLUS_ONE} } function minusOne(){return {type: MINUS_ONE}; }export class Counter extends React.Component{render(){const {count, plusOne, minusOne} this.props;return (div className counterbutton onClick {minusOne}-/buttonspan{count}/spanbutton onClick {plusOne}/button/div);} }// 将store的state与组件props绑定 function mapStateToProps(state){return {count: state.count}; }// 将store的action与组件props绑定 function mapDispatchToProps(dispatch){return bindActionCreators({plusOne, minusOne}, dispatch) }// 通过connect组件将store与counter组件关联 const ConnectedCounter connect(mapStateToProps, mapDispatchToProps)(Counter) ;// 返回使用样例 export default class CounterSample extends React.Component{render(){return (// prodiver 基于react context实现可以让里面的子组件都能获取到storeProvider store {store}ConnectedCounter//Provider);} }
http://www.zqtcl.cn/news/431889/

相关文章:

  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具
  • 在线课程网站开发的研究意义网站开发需要哪些知识
  • 深圳网站优化怎么做手工艺品外贸出口公司网站建设方案
  • 从网站优化之角度出发做网站策划wordpress邀请码插件
  • 大学营销型网站建设实训课程o2o的四种营销模式
  • 咋做网站代码背景图宁远网站建设
  • 有哪些可以做网站的企业网站想换个风格怎么做
  • 怎么在百度搜索自己的网站在电脑上建设个人网站
  • wordpress网站菜单固定电商未来发展趋势前景
  • 五合一网站建设费用python 做网站 用哪个框架好
  • 波莱网站开发动态域名可以做网站吗
  • 网站建设 赣icp 南昌面馆装修设计
  • 福田附近公司做网站建设多少钱网站建设文献综述范文
  • 镇江网站建设设计建设银行投诉网站首页
  • 石家庄个人做网站广州全网络营销
  • html5网站建设加盟wordpress 4.8.6
  • 携程网站建设的基本特点哈尔滨做平台网站平台公司
  • 网站建设入门解读国模 wordpress
  • 网站购物车js代码怎么做制作app的软件有哪些
  • 36氪网站用什么程序做的互联网门户网站建设
  • 视频聚合网站怎么做不侵权wordpress 管理员插件
  • 传媒网站后台免费模板网站建设的进度计划
  • 如何做网站排名合肥全网优化
  • 网站建设招聘信息官网 wordpress
  • 城阳网站开发公司网页制作与设计在哪搜题
  • 做网站算运营吗grace wordpress
  • 厦门建设网站建站制作网页动画的软件