Estoy creando una biblioteca que te ayuda a crear un formulario de inicio de sesión/registro solo con JavaScript (esta idea apesta, lo sé, pero la construyo para aprender más sobre JavaScript).
¿Y debería usar el emisor de eventos para crear eventos personalizados? Quiero decir, por ejemplo, quiero crear un evento cuando el usuario hace clic en el botón para forget password (por ejemplo, el nombre del evento es "onForgetPassword"), o simplemente como un evento llamado "onLogin" cuando el usuario envía el formulario de inicio de sesión. ¿Debo crear todo eso con el emisor de eventos? Y esos eventos se "emitirán" cuando ocurra algún evento DOM normal (por ejemplo, el evento personalizado "onLogin" se emitirá cuando se produzca un evento de envío DOM en el formulario).
Aquí hay un código de ejemplo del "punto de vista del usuario":
myLoginForm.on("onLogin", function(eventObject) { console.log("The user logged in!") console.log("The log in informations: ", eventObject) }) /* myLoginForm is an object that's generated by my library, which contains informations about the form and some methods which also contains the 'on' method to listen to event. */ // Now whenever the login form is being submitted, 2 message will log to the console.Y no estoy usando la clase EventEmitter de node.js, porque no la tenemos en el navegador, pero uso este paquete de eventos de npm, que trae EventEmitter al entorno que no lo tiene.
La razón por la que quiero hacer eso es porque, bueno, creo que es mucho más conveniente para el usuario usar este tipo de eventos personalizados, por lo que puedo brindarles más información a través del "eventObject". Y también ayude al usuario a escuchar eventos más complejos (como el evento "onForgotPassword"), que con el evento dom regular necesitamos escribir más códigos.
Y, por cierto, en la biblioteca de JavaScript, ¿hay términos como " biblioteca para navegador " o " biblioteca para servidor " (tal vez creado con Node.js)? ¿O solo hay un tipo de biblioteca de JavaScript? Estoy un poco confundido, así que espero que puedan ayudarme a aclararlo. ¡Muchas gracias!