zoukankan      html  css  js  c++  java
  • 【React】----flux 学习总结

    flux:
      脚手架安装:
      cnpm install create-react-app
      create-react-app my-demo
      安装路由dom
      cnpm install react-router-dom --save-dev
      cnpm install flux --save-dev
    1、是一种构架思想,专门解决软件的结构问题
    2、基本概念:
      1、四部分组成
        view:视图层
        action:视图发出的动作
        dispatcher:接收action 执行回调
        store:存放数据,一旦发生改变就(events中的emit、on)提醒view更新页面
    2、执行流程:
      用户访问view,发出动作action,dispatcher接收到action,store通过事件更改数据,更改完毕后通过events中的emit、on通知view层更新页面
    3、代码操作流程
      1、创建store仓库,从events模块引入emit on方法
        import EventEmitter from 'events'
        合并对象
        const Store = Object.assign({},EventEmitter.pototype,{
        state:{}存放数据
          getState(){} 获取数据
        })
        export default Store 导出Store
        view中引入Store
        this.state=Store.getState()

                  

      2、view 触发事件 发出action
        const action={
          type:'',
          value:''
        }
        

        (创建dispatcher
        import {Dispatcher} from 'flux'
        const dispatcher = new Dispatcher()

        export default dispatcher)

        引入dispatcher
        import dispathcer from '...'
        通过dispatcher的dispatch方法接收action
        dispatcher.dispatch(action)
      
        在dispatcher中接收
        import
        dispatcher.register((action)=>{
        通过判断action.type类型,来调用Store的方法执行修改操作,所以要引入store
          switch (action.type){
            case 'CHANGE_ITEM'
              Store.handleChange(action.value)
              break;
            default:
            break;
          }
        })

        

      3、数据发生改变,dispatcher通知store更改数据
        handleChange(val){
          this.state.…… = val
          通过events中的emit触发
          this.emit('updata')
         }
          定义一个方法,哪个组件需要调用数据,就调用这个方法
          handleUpdate(fn){
            this.on('updata',fn)
          }

        

       4、view中调用handleUpdate方法,来更改数据
        Store.handleUpadate(this.handleUpdate.bind(this))
          

        handleUpdate(){
          this.setState(Store.getState())
        }


  • 相关阅读:
    正则表达式解决身份证号码和手机号
    redis:集群配置
    linux:NFS
    xshell提示必须安装最新的更新
    linux:ssh远程调用tomcat脚本时候出错
    linux:scp从入门到刚入门
    linux:SSH最简单教程
    nginx;keepalived配置出现主主的解决方法(脑裂问题)
    (4)事件处理——(4)网页上的多个脚本(Multiple scripts on one page)
    [php]应用控制器(一)
  • 原文地址:https://www.cnblogs.com/asenper/p/9887810.html
Copyright © 2011-2022 走看看