Setup

setup: ({ Observable: Observable, plugins?: Array<Function>, HOStateStream: StateStream }) => void

setup 用于初始化配置 Rxact,并接受一个 options 对象参数,包含三个 key:

  • Observable: 配置你选用的 Observable 实现。
  • plugins: 配置 Rxact 组件。
  • HOStateStream: StateStream 高阶组件,如果你对 StateStream 类做出了修改,需要将修改后的 StateStream 传入。

例子

// 注意,setup 在一个项目里只能执行一次

setup({ Observable: Rx.Observable }) // 配置 RxJS Observable

setup({ Observable, plugins: [rxactDebugger(), rxactReact()] }) // 配置 debugger 和 react 插件

class HOStateStream extends StateStream {
    constructor(streamName, initialValue, stateStreams) {
        const name = `HOS${streamName}`

        return super(streamName, initialValue, stateStreams)
    }
}

setup({ Observable, plugins: [], StateStream: HOStateStream }) // 配置改造过的 StateStream

plugin

plugin: StateStream => StateStream

plugin 是一个函数,StateStream 会将实例通过第一个参数传递给 plugin,开发者可以修改 instance 或者实现一个代理,在 plugin 函数中返回,StateStream 会接受新得到的实例。

例子

1.

// 给 StateStream 实例新增一个 property
const plugin = (instance) => {
  instance.test = 'test'

  return instance
}

setup({ Observable, plugins: [plugin] })

const stream = new StateStream('example')

console.log(stream.test)
// test

2.

// 生成一个代理
const plugin = (instance) => {
  return new Proxy(instance, {
    get: (target, prop) => {
      console.log(`${prop} called`)

      return target[prop]
    }
  })
}

setup({ Observable, plugins: [plugin] })

const stream = new StateStream('example')

stream.state$
// state$ called

results matching ""

    No results matching ""