GithubHelp home page GithubHelp logo

lifecycle hooks about nanohtml HOT 4 CLOSED

choojs avatar choojs commented on June 8, 2024
lifecycle hooks

from nanohtml.

Comments (4)

shama avatar shama commented on June 8, 2024

I want to play around with how this will affect the ecosystem but I'm thinking we should implement as custom events for consistency with existing events:

var popover = bel`<div onload=${function () {
  document.addEventListener('mousedown', isMouseOutside, false)
}} onunload=${function () {
  document.removeEventListener('mousedown', isMouseOutside, false)
}}>hi</div>`

// Fire onload
document.body.appendChild(popover)

// Fire onunload
document.body.removeChild(popover)

I only chose the names onload and unload to correspond with the native event names on window.


Also atm I just want to stick with these two events. Each framework has an analog to these two, so when implementing interoperability later it will make it easy if we don't add any more custom events like onresize or onbeforeunload etc.

from nanohtml.

yoshuawuyts avatar yoshuawuyts commented on June 8, 2024

ooh, yeah I really like that - means that there's no overhead unless explicitly opted in to. Might perhaps need some work with yo-yoify on that, but I think this would def be the right approach!

Yeah, also think that sticking to these two events would be good. Might be worth considering to pass the enclosing element as the first argument to the callback for onload so that any stuff like d3 can just attach itself to the node instead of having to do some odd hoop jumping to find the node it should append itself to. What do you reckon?

from nanohtml.

timwis avatar timwis commented on June 8, 2024

@yoshuawuyts the first time I read your comment, I thought you meant pass the parent element (misread "enclosing"). Reading it again, I think you meant the element itself (that probably makes more sense anyway). Right?

return bel`<div class="map" onload=${(el) => L.map(el)}></div>`

Because without a reference to it, you'd have to memoize the element, which could get a bit tedious. Unless this already references the element.

from nanohtml.

yoshuawuyts avatar yoshuawuyts commented on June 8, 2024

@timwis yup, you got that right - apologies for not being clear enough

from nanohtml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.