npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-geb

v1.0.0

Published

Global Event Bus for Vue.js apps

Downloads

85

Readme

Vue-geb - Global Event Bus

Vue-geb is a vue Global Event Bus plugin to help broadcast events across the app using the power of observables.

Only add 5kb to the rxjs library.

Demo

Install

npm install --save vue-geb

Or

yarn add vue-geb

Use

In your main.js :

import geb from 'vue-geb'

Vue.use(geb)

Example usage with modals

Basic usage

Access the Observable bus:

this.$geb.getBus() // Observable:Subject type 

Emit Events in the bus:

this.$geb.emit({object}) 

Listen to the Events in the bus:

this.sub = this.$geb.getBus().subscribe(data => {
      console.log(data)
      // Do anything you want with 'data'
  })

Listen to specific Events in the bus:

this.sub = this.$geb.getFilteredBus({id:'modal'}).subscribe(data => {
      console.log(data)
      // The callback is only called when an event is fired with at least the id attribute equal to 'modal'
  })

Vue directive

<button v-geb-click-emit="{id:'foo',payload:'Lorem'}">Send</button>

Notice how we use this.sub = ... .subscribe(). You need to unsubscribe when your component unmount to avoid memory leaks.

destroyed: function () {
            if(this.sub) {
                this.sub.unsubscribe()
            }
        },

Please check this example for a vue-geb modal usage.

Advanced

You can also access the same api as vm.$geb outside of vue context (same Event bus too):

import { gebHandler } from 'vue-geb'

gebHandler.emit({object}) 

This is useful for vue-geb usage in a state management library or any other js file.

Enjoy ! :)