Comments (8)
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.
@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.
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.
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.
@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.
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.
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.
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)
- Using javascript libaries with Vugu HOT 8
- wiring example not working HOT 1
- Consider using GCSS for CSS preprocessing HOT 1
- Panic: index out of range HOT 2
- This fixes the example in examples/fetch-and-display HOT 1
- MDL latest now is updated after many years neglect HOT 2
- Short form of vg-comp tag stops rendering the parent component
- Render server side and client side HOT 3
- webpack loader support and mixed with vue or react HOT 1
- Abandoned? HOT 9
- The Rendered lifecycle of the subcomponent has not been called HOT 1
- Getting Vugu to v1.0 and into production HOT 19
- TailwindCSS and Vugu HOT 2
- Produce a full production example
- State of vgforms package - do we need this for v1.0? HOT 1
- Request for a volunteer: TinyGo support for v1.0 (or shortly after) HOT 2
- Is the library alive? HOT 1
- Vugu v1.0 ToDo List
- Feedback Request: Do you use the generated `main_was.go`? HOT 3
- js Set can not set Function HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vugu.