yew/examples/README.md
Kaede Hoshikawa eec07583f1
Agent v2 (#2773)
* Make private bridges.

* Add worker agent.

* Add task type.

* Memorised Task.

* Add station.

* Add Station Agent.

* Subscription.

* Station hooks.

* Reactor Agents.

* Add more description.

* Restart station when closed.

* Remove Station restart.

* Send finish message to bridges.

* Adds a method to read whether a bridge has received finish message for a subscription.

* Update Reactor Agent.

* Decouple macros from it.

* Reactor Macro.

* Reactivate Task.

* Slightly adjust API.

* Add documentation for reactor agents.

* Remove Station.

* Create Task macro.

* Migrate Example.

* Simplify Task Agent Design.

* Implement Sink.

* Agent -> Task in Example.

* Switch to Registrable.

* AgentScopeExt.

* Finish AgentScopeExt.

* Prelude.

* Adjust prelude.

* Fix imports.

* Yew Agent.

* Switch to upstreamed version of gloo.

* Add stub reset.

* Remove example.

* Add Reset for Worker agents.

* merge fix-ci into "agent-v2"

* Switch to released version of gloo.

* Adds Runtime.

* A LocalRuntime.

* Add note.

* Add SSR benchmark.

* Only create default runtime if no custom runtime is set.

* Use jemalloc for benchmarking.

* Remove once_cell for web assembly.

* Add time.

* Fix wasm_bindgen.

* Adjust inlining.

* merge local-runtime into "agent-v2"

* Add reset.

* Simplify task agent.

* SSR for tasks.

* Optimise benchmark output.

* Optimise BufWriter.

* Add json output.

* Add Benchmark Workflow.

* merge local-runtime into "agent-v2"

* Makes Prepared States to be Rc'ed.

* Move example.

* Update example.

* Implement prepared state for memorised tasks.

* Make prepared states work on none runtime as well.

* Finished prepared output.

* Remove local set from tests.

* Fix Workflow syntax.

* Exclude benchmark from doc tests.

* Tidy up the code.

* Remove HashSet.

* Fix rustfmt.

* Some optimisation.

* Use postcard.

* Remove allocations.

* Weak Ref.

* Adjust feature flags.

* Adds a pinned channel implementation.

* Make Send bound explicit.

* Migrate to pinned channel.

* Implement on immutable reference.

* Rename agent channel method.

* Fix Sink close.

* Fix closing.

* Remove old platform.

* Migrate to new macro.

* Port Oneshot Agent.

* Migrate reactor to gloo-worker.

* Implement ScopeExt for Reactor.

* Remove unneeded checks.

* Update example note.

* Fix doc tests.

* Add an example for reactor agent.

* Rename Prime to PrimeReactor.

* Update Crate Information.

* Remove unused dependencies.

* Remove unused dependencies.

* Update documentation.

* Rename Bridge to Runner.

* Update documentation.

* Update documentation.

* Update State name.

* Merge outputs state for subscriptions.

* Update documentation.

* Fix doc link.

* Make code link code link.

* Make CODEC -> C.

* Update Debug Implementation to type_name.

* Fix readme.
2023-09-18 17:30:02 +09:00

10 KiB
Raw Permalink Blame History

Yew Examples

How to Run

The examples are built with trunk. Once you have the development envrionment fully set up (see documentation), running an example is as easy as running a single command:

# move into the directory of the example you want to run
# In this case it's the todomvc example
cd examples/todomvc

# build and serve the example
trunk serve --open

Some examples may perform better using the release profile. If something is slow, you can try running it with the --release argument.

We're also publicly hosting the examples at https://examples.yew.rs/<EXAMPLE>. As an example, check out the TodoMVC example here: https://examples.yew.rs/todomvc

List of Examples

Example CT Description
async_clock S Demonstrates the use of asynchronous tasks in a yew component.
boids S Yew port of Boids
communication_child_to_parent S Communication from child to parent components.
communication_grandchild_with_grandparent S Communication from grandchildren to grandparent components.
communication_grandparent_to_grandchild S Communication from grandparent to grandchild components.
communication_parent_to_child S Communication from parent to child components.
contexts F A technical demonstration of the Context API.
counter S Simple counter which can be incremented and decremented.
counter_functional F Simple counter which can be incremented and decremented made using function components.
dyn_create_destroy_apps S Uses the function Renderer::with_root_and_props and the AppHandle struct to dynamically create and delete Yew apps.
file_upload S Uses gloo::file to read the content of user uploaded files.
function_memory_game F Implementation of Memory Game.
function_router F Identical to router but using function components.
function_todomvc F Implementation of TodoMVC using function components and hooks.
futures S Demonstrates how you can use futures and async code with Yew. Features a Markdown renderer.
game_of_life S Implementation of Conway's Game of Life.
immutable SF Using immutable types in components.
inner_html S Embeds an external document as raw HTML by manually managing the element.
js_callback F Interacts with JavaScript code.
keyed_list S Demonstrates how to use keys to improve the performance of lists.
mount_point S Shows how to mount the root component to a custom element.
nested_list S Renders a styled list which tracks hover events.
node_refs S Uses a NodeRef to focus the input element under the cursor.
password_strength SF A password strength estimator implemented in Yew.
portals S Renders elements into out-of-tree nodes with the help of portals.
router S The best yew blog built with yew-router.
simple_ssr F Demonstrates server-side rendering.
ssr_router F Demonstrates server-side rendering with routing.
suspense F This is an example that demonstrates <Suspense /> support.
timer S Demonstrates the use of the interval and timeout services.
timer_functional F Demonstrates the use of the interval and timeout services using function components
todomvc S Implementation of TodoMVC.
two_apps S Runs two separate Yew apps which can communicate with each other.
web_worker_fib F Calculate Fibonacci numbers in a web worker thread using yew-agent.
web_worker_prime F Calculate Prime numbers in a web worker thread using yew-agent.
webgl S Controls a WebGL canvas from Yew.

Next Steps

Have a look at Yew's starter templates when starting a project using Yew they can significantly simplify things.

Helping Out

If one of the examples catches your interest, look for the "improvements" section in its README.md file. Most examples list a few ideas for how to improve them. Consider starting with those but don't hesitate to improve an example in other ways either.

One problem that currently plagues most examples is the lack of styling. Please help us make the examples look as flashy as possible!