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

南宁网站设计图今日新闻摘抄50字

南宁网站设计图,今日新闻摘抄50字,2020年网站建设笔记本,网站制作郑州一、背景 在前面文章了解中,我们了解到redux是用于数据状态管理,而react是一个视图层面的库 如果将两者连接在一起,可以使用官方推荐react-redux库,其具有高效且灵活的特性 react-redux将组件分成: 容器组件&#…

一、背景

在前面文章了解中,我们了解到redux是用于数据状态管理,而react是一个视图层面的库

如果将两者连接在一起,可以使用官方推荐react-redux库,其具有高效且灵活的特性

react-redux将组件分成:

  • 容器组件:存在逻辑处理
  • UI 组件:只负责现显示和交互,内部不处理逻辑,状态由外部控制

通过redux将整个应用状态存储到store中,组件可以派发dispatch行为action给store

其他组件通过订阅store中的状态state来更新自身的视图

二、如何做

使用react-redux分成了两大核心:

  • Provider
  • connection

Provider

在redux中存在一个store用于存储state,如果将这个store存放在顶层元素中,其他组件都被包裹在顶层元素之上

那么所有的组件都能够受到redux的控制,都能够获取到redux中的数据

使用方式如下:

<Provider store = {store}>
    <App />
<Provider>

connection

connect方法将store上的getState和 dispatch包装成组件的props

导入conect如下:

import { connect } from "react-redux";

用法如下:

connect(mapStateToProps, mapDispatchToProps)(MyComponent)

可以传递两个参数:

  • mapStateToProps
  • mapDispatchToProps

mapStateToProps

把redux中的数据映射到react中的props中去

如下:

const mapStateToProps = (state) => {
    return {
        // prop : state.xxx  | 意思是将state中的某个数据映射到props中
        foo: state.bar
    }
}

组件内部就能够通过props获取到store中的数据

class Foo extends Component {
    constructor(props){
        super(props);
    }
    render(){
        return(
         // 这样子渲染的其实就是state.bar的数据了
            <div>this.props.foo</div>
        )
    }
}
Foo = connect()(Foo)
export default Foo

mapDispatchToProps

将redux中的dispatch映射到组件内部的props中

const mapDispatchToProps = (dispatch) => { // 默认传递参数就是dispatch
  return {
    onClick: () => {
      dispatch({
        type: 'increatment'
      });
    }
  };
}

class Foo extends Component {
    constructor(props){
        super(props);
    }
    render(){
        return(
        
             <button onClick = {this.props.onClick}>点击increase</button>
        )
    }
}
Foo = connect()(Foo);
export default Foo;

小结

整体流程图大致如下所示:

三、项目结构

可以根据项目具体情况进行选择,以下列出两种常见的组织结构

按角色组织(MVC)

角色如下:

  • reducers
  • actions
  • components
  • containers

参考如下:

reducers/
  todoReducer.js
  filterReducer.js
actions/
  todoAction.js
  filterActions.js
components/
  todoList.js
  todoItem.js
  filter.js
containers/
  todoListContainer.js
  todoItemContainer.js
  filterContainer.js

按功能组织

使用redux使用功能组织项目,也就是把完成同一应用功能的代码放在一个目录下,一个应用功能包含多个角色的代码

Redux中,不同的角色就是reducer、actions和视图,而应用功能对应的就是用户界面的交互模块

参考如下:

todoList/
  actions.js
  actionTypes.js
  index.js
  reducer.js
  views/
    components.js
    containers.js
filter/
  actions.js
  actionTypes.js
  index.js
  reducer.js
  views/
    components.js
    container.js

每个功能模块对应一个目录,每个目录下包含同样的角色文件:

  • actionTypes.js 定义action类型
  • actions.js 定义action构造函数
  • reducer.js 定义这个功能模块如果响应actions.js定义的动作
  • views 包含功能模块中所有的React组件,包括展示组件和容器组件
  • index.js 把所有的角色导入,统一导出

其中index模块用于导出对外的接口

import * as actions from './actions.js';
import reducer from './reducer.js';
import view from './views/container.js';

export { actions, reducer, view };

导入方法如下:

import { actions, reducer, view as TodoList } from './xxxx'

参考文献

  • https://www.redux.org.cn/docs/basics/UsageWithReact.html
  • https://segmentfault.com/a/1190000010384268
http://www.tj-hxxt.cn/news/13049.html

相关文章:

  • 做网站的专业叫啥宁波seo外包推广公司
  • 基于jsp的社团组织网站建设seo运营是什么意思
  • 本地做的网站怎么放到网上去智慧软文
  • 中国建筑官网站seo网站诊断
  • 去哪想找人帮我做网站云优化
  • 潍坊做外贸网站建设关键词优化一年的收费标准
  • 永久免费个人网页申请优化系统
  • 如何判断网站是不是自适应比较好用的搜索引擎
  • 网站安全维护方案公司免费推广网站
  • 免费建网站可信吗模板网站建设开发
  • 地球人-一家只做信誉的网站网站域名ip查询
  • 邢台做网站推广报价阿里指数查询官网入口
  • 中企动力做的网站好吗seo的工作原理
  • 深圳网站设计实力乐云seo18款禁用网站app直播
  • 汽车精品设计网站建设seo短视频保密路线
  • 网页加速器 安卓苏州seo优化
  • 做外贸手机网站百度seo报价
  • wordpress特定用户特定分类seo页面链接优化
  • 河北省网站建设公司网址导航怎样推广
  • 找网络公司建网站的流程网站网址大全
  • 网站改版换域名seo sem是什么
  • 淘宝哪些做网站关键词排名的有用吗百度权重批量查询
  • 筑巢网站推广怎么样郑州百度推广seo
  • 手机网站排名优化口碑营销案例简短
  • 河源网站制作百度推广工作好干吗
  • wordpress 邮件服务求职seo服务
  • 做草坪绿化网站今日十大新闻
  • 晋中建设集团网站对网站提出的优化建议
  • 门户网站重要性免费长尾词挖掘工具
  • 帮别人做app网站门户的兼职网络推广最好的网站有哪些