Code Monkey home page Code Monkey logo

Comments (6)

Boscop avatar Boscop commented on April 28, 2024

I'm looking forward to this. My use case is: I'm writing a game with the unrust webgl engine, and want to have a HUD GUI overlay based on html with yew (also a chat text field etc.) so I need two way communication between the yew app and the wasm game..
What would be the best way to do this? Using wasm imported/exported functions for rpc?

from yew.

samuelvanderwaal avatar samuelvanderwaal commented on April 28, 2024

Missing label:

  • feature

from yew.

tieje avatar tieje commented on April 28, 2024

@hamza1311 , if this is not been solved, can you please assign this ticket to me?
Loosely related to #135

from yew.

hamza1311 avatar hamza1311 commented on April 28, 2024

Don't portals solve this? I'm not sure what the solution here is. Do you have anything in mind, @tieje?

CC: @WorldSEnder

from yew.

tieje avatar tieje commented on April 28, 2024

Don't portals solve this? I'm not sure what the solution here is. Do you have anything in mind, @tieje?

CC: @WorldSEnder

I don't know. Sorry, but I am still yet a learner.

from yew.

WorldSEnder avatar WorldSEnder commented on April 28, 2024

Portals can get you there, to some degree. You could for example render something akin to

// Create your third-party component somehow, probably by calling to JS
// Should not be in the view function directly, but in use_state or the component's create
let third_party_element: web_sys::Element = todo!();
// Now, in the view function you can use a portal to let yew handle the children of that element
// These could be for example slotted
let portal_to_children = yew::html::create_portal(html! {
    <>
        <p slot="some-slot">{"I will be rendered as a child of third_party_element"}</p>
        <p slot="some-other-slot">{"E.g. 'slot' can be used with web components"}</p>
    </>
}, third_party_element.clone());
// Render both the original element, and the portal
html! {
<> 
    {portal_to_children}
    {VDom::VRef(third_party_element.into())}
</>
}

Note: I haven't thought about event propagation/bubbling with the above, but I think it should work fine.

from yew.

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.