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

@schibstedspain/suntory

v2.0.0

Published

Append arbitrary events at your ReactJS components

Downloads

9

Readme

Suntory

Suntory

Algunas veces tenemos que hacer cosas que no nos gustaría. Sin duda pasar por encima de los eventos sintácticos de ReactJS es una de esas cosas. Se me pueden ocurrer escenarios donde eso sea la solución más simple:

  • Cuando deseamos trackear toda clase de acciones raras en un componente y no expone una API adecuada para ello.
  • Cuando debemos trabajar con componentes de terceros que exponen una API muy limitada.

En fin, por el motivo que sea, has llegado al punto de decidir que necesitas más potencia de la que tienes con ReactJS.

Piensatelo dos veces antes de decidir eso. Y cuando estes seguro, pienso una vez más. Es MUY MALA IDEA, usar esto son saber como ni porque. Asegura muchisimo que no hay otras opciones.

Si al final, vas a hacerlo, hazlo bien. Y para eso está esta librería.

Con la misma API que ya se está usando en Backbone para la gestión de eventos vas a poder delegar eventos a tus componentes.

Instalación:

npm

$ npm install @schibstedspain/suntory

Clone the repo

$ git clone https://github.com/SUI-Components/suntory
$ cd suntory
$ npm install
$ npm run dev

Go to http://localhost:8080 to see the demo. Open the Developers Tools

Compatibilidad

Actualmente EI9+, Chrome37+, FireFox38+ Limitado al soporte de matches

Esto es así para evitar cargar src/vendor/zepto.events. Posiblemente esto acabe cambiando próximamente en la versión 2.0

Delegación de Eventos:

Suntory es un decorador que te va a permitir de forma simple delegar eventos a tus componentes de ReactJS. Para ello solo tienes pasarle un objeto con la definición del evento como clave y como valor el handler del evento.

import suntory from '@schibstedspain/suntory';

@suntory({
  'mouseover [data-click]': function(e) { console.log(e.target) }
})
class List extends React.Component {
  render() {
    return (
        <div>
          <ul>
            {
              "Hola mundo, esto es una prueba de suntory".split(' ').map((text, index) => {
                return (<Item key={index} text={text} />);
              })
            }
          </ul>
        </div>
    )
  }
}

class Item extends React.Component {
  render() {
    return <li className="List-item" data-click>{this.props.text}</li>;
  }
}

Los eventos serán todos delegados a la capa contenedora de tu componente. Por lo que no se verán afectados componentes similares en otros partes de tu código.

Por otra parte cuando tu componente sea desmontado del DOM, todos los eventos serán revertidos.