Use 组件

说明

connect 修饰器 是用于连接一个 “状态实例” 与 “React 组件”。

Use 组件 是一个 React 组件,可连接 “状态实例” 跟 “React 元素”。

import { Use } from 'bbx';

// 状态实例
const user = new User();

class App extends React.Component{
  render () {
    return <div>

      <Use state={user}>
        {
          () => <div>
            {user.state.name}
            {user.state.age}
          </div>
        }
      </Use>

    </div>
  }
}

Use props:

  • state

这个 “state” 为一个 “状态实例” 或 “状态实例的数组”。

  • children

children 为一个方法,返回的是 React 元素。当 state 更新后,对应的 React 元素也会更新。

更多

为什么有了 connect 修饰器 还需要 Use 组件 呢?

因为前者是连接的一个 React Component,而后者是连接的一个 React Element。

比如当使用 connect 修饰器 连接一个 React 组件:

import user from './states/user';

@connect(user)
class App extends React.Component{}

但是要是 user 这个 “状态实例” 是动态的呢?那就用 Use 组件 会很方便:


class App extends React.Component{
  constrcutor(props) {
    super(props);
    this.user = new User();
  }
  render() {
    return <Use state={user.state.name}>
      {() =>
        <div>
          {user.state.name}
        </div>
      }
    </Use>
  }
}

另外,对于一个复杂的组件,使用 Use 组件 的方式也可很方便使用 “状态实例”。

Last Updated: 8/23/2018, 9:21:11 PM