zoukankan      html  css  js  c++  java
  • 关于react-redux中的connect函数

    示例代码

     1 'use strict';
     2 import React from 'react';
     3 
     4 import {
     5     connect
     6 } from 'react-redux';
     7 class demo extends React.Component {
     8     constructor(props) {
     9         super(props);
    10         this.state = {
    11 
    12         }
    13 
    14     }
    15 
    16     render() {
    17 
    18         return (
    19             <div className="page-content">
    20 
    21             </div>
    22           )
    23     }
    24 }
    25 export default connect(state => {
    26     return {
    27         demo: state.demo
    28     }
    29 })(demo);

    作用

      连接React组件与 Redux store ,允许我们将 store 中的数据作为 props 绑定到组件上。

    使用

    1 const App = () => {
    2   return (
    3     <Provider store={store}>
    4       <demo/>
    5     </Provider>
    6   )
    7 };
    • Provider 内的任何一个组件(比如这里的 demo),如果需要使用 state 中的数据,就必须是「被 connect 过的」组件——使用 connect 方法对「你编写的组件(MyComp)」进行包装后的产物

     

    export default connect(state => {
        return {
            demo: state.demo
        }
    })(demo);
    • connect 函数可以将redux的小状态机单独传入react组件(即只传入你需要的部分),不必把state全部传入,如上面示例中就只传入了state.demo.
    • 当readux里面相应的值改变时,connect会重新调用,生成新的props,这样react组件接受新的props,就会重新渲染。

    原理

    connect之所以会成功,是因为Provider组件:

    • 在原应用组件上包裹一层,使原来整个应用成为Provider的子组件
    • 接收Redux的store作为props,通过context对象传递给子孙组件上的connect
  • 相关阅读:
    C++中volatile及编译器优化
    virtualbox 复制虚拟机提示uuid is exists
    Opencv实现简易播放器
    机器学习 Hidden Markov Models 2
    MFC显示Mat图片
    HDU 1518 Square
    马的遍历问题
    JAVA反射机制
    UNIX基础知识
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
  • 原文地址:https://www.cnblogs.com/liyuanqing/p/7505247.html
Copyright © 2011-2022 走看看