GithubHelp home page GithubHelp logo

Component Lifecycle Events about vugu HOT 8 OPEN

vugu avatar vugu commented on April 28, 2024
Component Lifecycle Events

from vugu.

Comments (8)

bketelsen avatar bketelsen commented on April 28, 2024

I ran into the need for this today, trying to load data from a web service to populate the "home" page. I couldn't figure out how to trigger an event to populate the RootData model.

from vugu.

bradleypeabody avatar bradleypeabody commented on April 28, 2024

@bketelsen I see. Yeah adding these calls is definitely on the roadmap to be done soon. If you have a specific question you want to ask on your case feel free to make a separate issue as a question (with whatever code snippet) and I'll help to the extent I can.

from vugu.

bradleypeabody avatar bradleypeabody commented on April 28, 2024

BeforeBuild() is now implemented. The other ones still need more thought but should be doable now after things have been reorganized. Leaving this open since I'm sure we'll still want at least one or two more but I'm sort of waiting for the use case to crop up so we can see what arguments or data needs to be available in each one.

from vugu.

jancona avatar jancona commented on April 28, 2024

I am experimenting with trying to use https://github.com/markfarnan/go-canvas with Vugu (see #68). But I think I need something like AfterFirstRender() or AfterBuild() to get a js.Value reference to the Canvas I create in my component so that I can pass it to go-canvas. Does that sound correct, or am I barking up the wrong tree? (I'm not far from a DOM or browser programming expert!)

from vugu.

bradleypeabody avatar bradleypeabody commented on April 28, 2024

@jancona That more or less sounds correct, although there are some difficulties. Vugu can end up rewriting elements during the render process, so if you are doing both a Vugu render and work with the canvas in tandem it is possibly (and likely) that changes to your DOM state will cause your canvas to be deleted and recreated, thus making your js.Value invalid. This is the main reason that Vugu doesn't provide a handy mechanism to get a js.Value for an element. (Although I'm definitely aware of this problem and it is on the roadmap to come up with a good solution.)

That said, you can obtain one fairly easily by looking up the element by ID, something like:

canvasElem := js.Global().Get("document").Call("getElementById", "your_canvas_id")

Vugu will only change the DOM during a render (see main_wasm.go), and perhaps that fact can be used to synchronize what you are doing with go-canvas and avoid Vugu clobbering your canvas element (or if it does, obtain the new js.Value afterward).

from vugu.

jancona avatar jancona commented on April 28, 2024

Thanks. So am I correct that I need to wait until these Component Lifecycle Events are implemented before I can go further on this?

from vugu.

bradleypeabody avatar bradleypeabody commented on April 28, 2024

That would be the simplest solution, yes. Although I'm not sure what you're trying to do can't be accomplished right now (or maybe the feature can easily be added to get a reference to the DOM element as a js.Value).

Do you have a concise example you are trying to make work? It might be simplest if I can see the code for what you're trying to do.

from vugu.

bradleypeabody avatar bradleypeabody commented on April 28, 2024

FYI the feature to access the js.Value of an element that Vugu creates is now implemented: https://www.vugu.org/doc/files/markup#vg-js-create

from vugu.

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.