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

沈阳营销型网站制作如何做网络推广人员

沈阳营销型网站制作,如何做网络推广人员,网页微信支付,昌平网站建设浩森宇特Redux 的设计思想很简单,就两句话。 (1)Web 应用是一个状态机,视图与状态是一一对应的。 (2)所有的状态,保存在一个对象里面。 1 Store Store 就是保存数据的地方,你可以把它看成一…

Redux 的设计思想很简单,就两句话。

(1)Web 应用是一个状态机,视图与状态是一一对应的。

(2)所有的状态,保存在一个对象里面。

1 Store

Store 就是保存数据的地方,你可以把它看成一个容器。整个应用只能有一个 Store。

Redux 提供createStore这个函数,用来生成 Store。


import { createStore } from 'redux';
const store = createStore(fn);

上面代码中,createStore函数接受另一个函数作为参数,返回新生成的 Store 对象。fn是reducer(后面讲)

2 State

Store对象包含所有数据。如果想得到某个时点的数据,就要对 Store 生成快照。这种时点的数据集合,就叫做 State。

当前时刻的 State,可以通过store.getState()拿到。


import { createStore } from 'redux';
const store = createStore(fn);const state = store.getState();

 

3 Action

State 的变化,会导致 View 的变化。但是,用户接触不到 State,只能接触到 View。所以,State 的变化必须是 View 导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了。

Action 是一个对象。其中的type属性是必须的,表示 Action 的名称。其他属性可以自由设置,社区有一个规范可以参考。


const action = {type: 'ADD_TODO',payload: 'Learn Redux'
};

上面代码中,Action 的名称是ADD_TODO,它携带的信息是字符串Learn Redux

可以这样理解,Action 描述当前发生的事情。改变 State 的唯一办法,就是使用 Action。它会运送数据到 Store。

4 Action Creator

View 要发送多少种消息,就会有多少种 Action。如果都手写,会很麻烦。可以定义一个函数来生成 Action,这个函数就叫 Action Creator。


const ADD_TODO = '添加 TODO';function addTodo(text) {return {type: ADD_TODO,text}
}const action = addTodo('Learn Redux');

上面代码中,addTodo函数就是一个 Action Creator。

action用在哪里?

 

5.Reducer

Store 收到 Action 以后,必须给出一个新的 State,这样 View 才会发生变化。这种 State 的计算过程就叫做 Reducer。

Reducer 是一个函数,它接受 Action 和当前 State 作为参数,返回一个新的 State。


const reducer = function (state, action) {// ...return new_state;
};

整个应用的初始状态,可以作为 State 的默认值。下面是一个实际的例子。


const defaultState = 0;
const reducer = (state = defaultState, action) => {switch (action.type) {case 'ADD':return state + action.payload;default: return state;}
};const state = reducer(1, {type: 'ADD',payload: 2
});

上面代码中,reducer函数收到名为ADD的 Action 以后,就返回一个新的 State,作为加法的计算结果。其他运算的逻辑(比如减法),也可以根据 Action 的不同来实现。

那怎么去触发这个reducer函数呢?

5 store.dispatch()

store.dispatch()是 View 发出 Action 的唯一方法。


import { createStore } from 'redux';
const store = createStore(fn);store.dispatch({type: 'ADD_TODO',payload: 'Learn Redux'
});

上面代码中,store.dispatch接受一个 Action 对象作为参数,将它发送出去。

7 store.subscribe()

Store 允许使用store.subscribe方法设置监听函数,一旦 State 发生变化,就自动执行这个函数。


import { createStore } from 'redux';
const store = createStore(reducer);store.subscribe(listener);

显然,只要把 View 的更新函数(对于 React 项目,就是组件的render方法或setState方法)放入listen,就会实现 View 的自动渲染。

store.subscribe方法返回一个函数,调用这个函数就可以解除监听。


let unsubscribe = store.subscribe(() =>console.log(store.getState())
);unsubscribe();

 

combineReducers()

这是一个辅助函数,由于整个应用只有一个 State 对象,包含所有数据,对于大型应用来说,这个 State 必然十分庞大,导致 Reducer 函数也十分庞大。所以拆分reducer函数,可以使得代码易读易写;

一下是一个demo:

reducers/todos.js
javascript 代码

export default function todos(state = [], action) {switch (action.type) {case 'ADD_TODO':return state.concat([action.text])default:return state}
}
  •  

reducers/counter.js
javascript 代码

export default function counter(state = 0, action) {switch (action.type) {case 'INCREMENT':return state + 1case 'DECREMENT':return state - 1default:return state}
}

reducers/index.js
javascript 代码

import { combineReducers } from 'redux'
import todos from './todos'
import counter from './counter'export default combineReducers({todos,counter
})

App.js
javascript 代码

import { createStore } from 'redux'
import reducer from './reducers/index'let store = createStore(reducer)
console.log(store.getState())
// {
//   counter: 0,
//   todos: []
// }store.dispatch({type: 'ADD_TODO',text: 'Use Redux'
})
console.log(store.getState())
// {
//   counter: 0,
//   todos: [ 'Use Redux' ]
// }

 

http://www.lbrq.cn/news/2381671.html

相关文章:

  • 做外贸有哪些网站简短的营销软文范文
  • python网站开发招聘友情连接出售
  • 京网站建设公司东莞软文推广
  • 站长统计向日葵app下载竞价托管推广
  • 珠海门户网站建设报价哈尔滨网站优化
  • 设计作品网站有哪些seo第三方点击软件
  • 内蒙古最新消息谷歌seo外链
  • 江门网站制作软件网站优化网
  • 做网站销售东西 需要什么资质做一个官网要多少钱
  • 淄博哪里做网站苏州百度搜索排名优化
  • 四平网站建设哪家效果好软文营销案例200字
  • 目前有做电子合同的网站吗郑州网站优化顾问
  • 网站后台 点击插入国际免费b站
  • 网站如何做外链域名查询平台
  • erp系统哪个品牌最好seo快速排名百度首页
  • 渗透wordpress论坛seodao cn
  • 2018春节放假安排 网站建设公司品牌宣传
  • 溧阳有没有做网站的公司关键词排名怎么做上去
  • 国家和城乡建设部网站首页网络软文范例
  • 益阳市建设局网站是什么结构优化
  • 福清市住房和城乡建设局网站疫情最新情况 最新消息 全国
  • 网站设计红色表示什么营销手段有哪些方式
  • 元谋网站建设重庆网站建设哪家好
  • c 做网站微信公众号运营推广方案
  • 许昌建设委员会网站百度搜索风云榜明星
  • 地方商城网站上海搜索优化推广
  • 怎么给QQ名片做网站以下属于网站seo的内容是
  • 如何做融资网站网站备案查询工信部
  • 公司网站优化怎么做网站站内推广怎么做
  • 做网站的的广告词seo产品推广
  • math.h函数
  • 二进制专项
  • Instagram千号矩阵:亚矩阵云手机破解设备指纹检测的终极方案
  • 透过结构看时间——若思考清洗则表达有力
  • VR 污水厂初体验:颠覆传统认知​
  • 蓝光三维扫描技术:汽车轮毂轴承模具检测的高效解决方案