spa-bus
Version:
Tools for multilevel components to pass values in any SPA
74 lines (54 loc) • 2.26 kB
Markdown
[](https://github.com/feawesome/spa-bus/stargazers)
[](https://github.com/feawesome/spa-bus/issues)
[](https://github.com/feawesome/spa-bus/network)
[](https://github.com/feawesome/spa-bus)
[](https://github.com/feawesome/spa-bus)
[](https://twitter.com/intent/tweet?url=https://github.com/feawesome/spa-bus)
[](https://nodei.co/npm/spa-bus/)
[](https://nodei.co/npm/spa-bus/)
## spa-bus
By this tool, you can pass values across multilevel components, you don't need to pass them step by step.
### Example
* [Demo Page](https://feawesome.github.io/spa-bus)
* Demo Code
```jsx
import React from 'react'
import { render } from 'react-dom'
import eventEmitter from 'spa-bus'
function Child() {
eventEmitter.emit('testEvent', '传值给父组件')
return <div>我是子组件</div>
}
class App extends React.Component{
constructor(props) {
super(props)
eventEmitter.addEventListener('testEvent', e => console.log(e))
}
render() {
return (
<div>
<h1>我是父组件</h1>
<Child/>
</div>
)
}
}
render(<App />, document.getElementById('root'))
```
### Install
#### NPM
``` bash
npm install spa-bus --save
```
### API
- addEventListener:
* `type` : `[ String ]` : event type for listening
* `callBack` : `[ String ]` : callback for the event emited
- emit:
* `type` : `[ String ]` : event type to emit
* `params` : `[ any ]` : parameters to accross
- removeEventListener:
* `type` : `[ String ]` : event type for removing
### Author
**Peng Zhang**
**returnzp@gmail.com**