<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Yew Blog</title>
        <link>https://yew.rs/ja/blog</link>
        <description>Yew Blog</description>
        <lastBuildDate>Sat, 29 Nov 2025 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ja</language>
        <item>
            <title><![CDATA[Yew 0.22 - For Real This Time]]></title>
            <link>https://yew.rs/ja/blog/2025/11/29/release-0-22</link>
            <guid>https://yew.rs/ja/blog/2025/11/29/release-0-22</guid>
            <pubDate>Sat, 29 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[The Yew team is thrilled to announce the release of Yew 0.22! After a longer-than-expected journey, this release brings significant improvements to ergonomics, performance, and developer experience.]]></description>
            <content:encoded><![CDATA[<p>The Yew team is thrilled to announce the release of Yew 0.22! After a longer-than-expected journey, this release brings significant improvements to ergonomics, performance, and developer experience.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="highlights">Highlights<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#highlights" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="new-component-attribute">New <code>#[component]</code> Attribute<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#new-component-attribute" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>The <code>#[function_component]</code> attribute has been renamed to <code>#[component]</code> for brevity:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// Before</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token attribute attr-name" style="color:rgb(255, 203, 107)">#[function_component]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">fn</span><span class="token plain"> </span><span class="token function-definition function" style="color:rgb(130, 170, 255)">MyComponent</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-&gt;</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">Html</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">div</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">"Hello!"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">div</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// After (0.22+)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token attribute attr-name" style="color:rgb(255, 203, 107)">#[component]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">fn</span><span class="token plain"> </span><span class="token function-definition function" style="color:rgb(130, 170, 255)">MyComponent</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-&gt;</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">Html</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">div</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">"Hello!"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">div</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><br></span></code></pre></div></div>
<p>The old <code>#[function_component]</code> attribute is deprecated but still works, giving you time to migrate.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="for-loops-in-html">For-Loops in <code>html!</code><a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#for-loops-in-html" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>You can now use for-loops directly in the <code>html!</code> macro, making iteration more natural:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// Before - using iterator adapters</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">ul</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">for</span><span class="token plain"> items</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">iter</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">map</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token closure-params closure-punctuation punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token closure-params">item</span><span class="token closure-params closure-punctuation punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token plain"> </span><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">li</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> item </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">li</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">ul</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// After (0.22+) - native for-loop syntax</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">ul</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">        </span><span class="token keyword" style="font-style:italic">for</span><span class="token plain"> item </span><span class="token keyword" style="font-style:italic">in</span><span class="token plain"> items </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">            </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">li</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> item </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">li</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token plain">ul</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="msrv-raised-to-1840">MSRV Raised to 1.84.0<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#msrv-raised-to-1840" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>The minimum supported Rust version is now <strong>1.84.0</strong>. This allows us to use newer language features and provide better error messages.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="wasi-support-for-ssr">WASI Support for SSR<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#wasi-support-for-ssr" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Server-side rendering now works on WASI targets. See the <a href="https://yew.rs/ja/blog/2024/10/14/release-0-22">original 0.22 announcement</a> for details.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="better-cloning-ergonomics">Better Cloning Ergonomics<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#better-cloning-ergonomics" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<ul>
<li><code>ImplicitClone</code> is implemented for more yew types. This means less <code>&amp;</code> and <code>*</code> and <code>.clone()</code> clutter in the html macro.</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="yew-agent-vendored-gloo-workers">yew-agent: Vendored gloo-workers<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#yew-agent-vendored-gloo-workers" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>The <code>yew-agent</code> crate now includes its own web worker implementation, removing the external dependency on <code>gloo-worker</code>. This also adds support for <strong>module-type web workers</strong>:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">let</span><span class="token plain"> spawner </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">WorkerSpawner</span><span class="token punctuation" style="color:rgb(199, 146, 234)">::</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token class-name" style="color:rgb(255, 203, 107)">MyWorker</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">::</span><span class="token function" style="color:rgb(130, 170, 255)">new</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">as_module</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">true</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// Use ES module workers</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">spawn</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="yew-router-query-parameter-traits">yew-router: Query Parameter Traits<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#yew-router-query-parameter-traits" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>The <code>FromQuery</code> and <code>ToQuery</code> traits from gloo are now re-exported via <code>yew_router::query</code> for more flexible query parameter handling, along with dynamic basename support.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="migration-guide">Migration Guide<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#migration-guide" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>See the <a href="https://yew.rs/ja/docs/next/migration-guides/yew/from-0_21_0-to-0_22_0">migration guide</a> for detailed instructions on upgrading from 0.21.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="contributors">Contributors<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#contributors" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>Many thanks to everyone who contributed to this release! Special thanks to:</p>
<ul>
<li><a href="https://github.com/WorldSEnder" target="_blank" rel="noopener noreferrer">@WorldSEnder</a> for hydration fixes</li>
<li><a href="https://github.com/its-the-shrimp" target="_blank" rel="noopener noreferrer">@its-the-shrimp</a> for html macro enhancements</li>
<li><a href="https://github.com/kirillsemyonkin" target="_blank" rel="noopener noreferrer">@Kirill Semyonkin</a> for implicit clone library improvements</li>
<li><a href="https://github.com/langyo" target="_blank" rel="noopener noreferrer">@langyo</a> for WASI SSR support</li>
<li><a href="https://github.com/cecton" target="_blank" rel="noopener noreferrer">@cecton</a> for implicit clone improvements and ergonomics</li>
<li><a href="https://github.com/ranile" target="_blank" rel="noopener noreferrer">@ranile</a> for property improvements</li>
</ul>
<p>And all the other contributors who helped make this release possible!</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's Next<a href="https://yew.rs/ja/blog/2025/11/29/release-0-22#whats-next" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>We're continuing to work on improving Yew's performance, developer experience, and documentation. Join us on <a href="https://discord.gg/VQck8X4" target="_blank" rel="noopener noreferrer">Discord</a> to get involved!</p>
<p>See the <a href="https://github.com/yewstack/yew/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer">full changelog</a> for all changes.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Yew 0.22]]></title>
            <link>https://yew.rs/ja/blog/2024/10/14/release-0-22</link>
            <guid>https://yew.rs/ja/blog/2024/10/14/release-0-22</guid>
            <pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[What's new]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-new">What's new<a href="https://yew.rs/ja/blog/2024/10/14/release-0-22#whats-new" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="ssr-on-wasi">SSR on WASI<a href="https://yew.rs/ja/blog/2024/10/14/release-0-22#ssr-on-wasi" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Before Yew 0.22, server-side rendering (SSR) was only possible on the native target. With Yew 0.22, you can now render your Yew application on the WebAssembly System Interface (WASI) target.</p>
<p>Since the old SSR implementation will create new tasks directly in the asynchronous context directly (based on <code>prokio</code>). It only allowed in a multi-threaded environment that it is not compatible with WASI. So the new version added a dedicated one for a single-threaded environment that rendering function to support single-threaded scenes.</p>
<p>Learn more at <a href="https://github.com/yewstack/yew/tree/master/examples/wasi_ssr_module/src/main.rs" target="_blank" rel="noopener noreferrer">Server-side rendering example on WASI environment</a></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="call-for-contributors">Call for Contributors<a href="https://yew.rs/ja/blog/2024/10/14/release-0-22#call-for-contributors" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>The Yew project thrives on community involvement, and we welcome contributors with open arms. Whether you're an experienced Rust developer or just starting your journey, there are plenty of ways to get involved and make a meaningful impact on Yew's growth.</p>
<p>Here are some areas where you can contribute:</p>
<ul>
<li>
<p><strong>Code Contributions:</strong> If you're passionate about web development with Rust, consider contributing code to Yew. Whether it's fixing bugs, adding new features, or improving documentation, your code can help make Yew even better.</p>
</li>
<li>
<p><strong>Documentation:</strong> Clear and comprehensive documentation is vital for any project's success. You can contribute by improving documentation, writing tutorials, or creating examples that help others understand and use Yew effectively.</p>
</li>
<li>
<p><strong>Testing and Bug Reporting:</strong> Testing Yew and reporting bugs you encounter is a valuable contribution. Your feedback helps us identify and fix issues, ensuring a more stable framework for everyone.</p>
</li>
<li>
<p><strong>Community Support:</strong> Join discussions, chat rooms (we have our own Discord and Matrix!), or social media to assist other developers using Yew. Sharing your knowledge and helping others solve problems is a fantastic way to contribute.</p>
</li>
</ul>
<p>Contributing to open-source projects like Yew is not only a way to give back to the community but also an excellent opportunity to learn, collaborate, and enhance your skills.</p>
<p>To get started, check out the Yew GitHub repository and the contribution guidelines. Your contributions are highly appreciated and play a crucial role in shaping the future of Yew. Join us in this exciting journey!</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="thanks">Thanks!<a href="https://yew.rs/ja/blog/2024/10/14/release-0-22#thanks" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>Many people came together to create Yew 0.22. We couldn't have done it without all of you. Thanks!</p>
<p>See <a href="https://github.com/yewstack/yew/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer">the full changelog</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Yew 0.21]]></title>
            <link>https://yew.rs/ja/blog/2023/09/23/release-0-21</link>
            <guid>https://yew.rs/ja/blog/2023/09/23/release-0-21</guid>
            <pubDate>Sat, 23 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[The Yew development team is thrilled to unveil Yew 0.21.0, a significant milestone in the journey of empowering developers to create dependable and high-performance web applications with Rust.]]></description>
            <content:encoded><![CDATA[<p>The Yew development team is thrilled to unveil Yew 0.21.0, a significant milestone in the journey of empowering developers to create dependable and high-performance web applications with Rust.
Let's dive into the major highlights of this release.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-new">What's new<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#whats-new" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-changing-signatures-a-shift-in-hook-dependencies">1. Changing Signatures: A Shift in Hook Dependencies<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#1-changing-signatures-a-shift-in-hook-dependencies" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>One of the significant changes in Yew 0.21 is the adjustment to the signature of hooks that accept dependencies.
Dependencies used to be passed as the second argument after the closure. However, now they're passed as the first argument before the closure.</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">use_effect_with_deps</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">deps</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">move</span><span class="token plain"> </span><span class="token closure-params closure-punctuation punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token closure-params">deps</span><span class="token closure-params punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token closure-params"> </span><span class="token closure-params class-name" style="color:rgb(255, 203, 107)">Vec</span><span class="token closure-params operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token closure-params keyword" style="font-style:italic">i32</span><span class="token closure-params operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token closure-params closure-punctuation punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// Do something with dependencies</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>The reason behind swapping the order of dependencies in the code snippet is to address a specific use case.
In situations where the same value is needed both to compute a dependency and to be moved by value into the closure, the new order simplifies the code and improves readability and ergonomics.</p>
<p>This is a big breaking change so we've provided <a href="https://yew.rs/docs/migration-guides/yew/from-0_20_0-to-0_21_0#automated-refactor" target="_blank" rel="noopener noreferrer">a way to automate the refactor</a></p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-versatile-child-types">2. Versatile Child Types<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#2-versatile-child-types" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Yew now allows you to use any type as children within your components. This means you're no longer limited to just the <code>Children</code> type.
Instead, you can use any type, even <code>Html</code> or closures, unlocking patterns such as:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token macro property">html!</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token class-name" style="color:rgb(255, 203, 107)">Comp</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token operator" style="color:rgb(137, 221, 255)">|</span><span class="token plain">p</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">RenderProps</span><span class="token operator" style="color:rgb(137, 221, 255)">|</span><span class="token plain"> </span><span class="token macro property">html!</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">"Hello, "</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">p</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">/</span><span class="token class-name" style="color:rgb(255, 203, 107)">Comp</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="3-agents-a-complete-rewrite">3. Agents: A Complete Rewrite<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#3-agents-a-complete-rewrite" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Yew 0.21 brings a complete rewrite of <code>yew-agent</code>. This streamlines and simplifies the way workers operate. Here's what you need to know:</p>
<ul>
<li>
<p><strong>Introducing Providers:</strong> Say goodbye to the old <code>Worker::bridge()</code> method. Now, you can use the use <code>WorkerProvider</code> / <code>ReactorProvider</code> / <code>OneshotProvider</code> as per your need, by creating them using the hooks.</p>
</li>
<li>
<p><strong>WorkerLink to WorkerScope:</strong> We've removed WorkerLink in favor of WorkerScope. This change simplifies the worker architecture, making it more straightforward to manage and maintain.</p>
</li>
</ul>
<p>There are now 3 types of agents to be used, depending upon the situation:</p>
<ul>
<li>
<p><strong>Worker Agent:</strong> The original agent that uses an actor model, designed to handle complex states.</p>
</li>
<li>
<p><strong>Oneshot Agent:</strong> Designed for scenarios where you expect a single input and a single output for each agent.</p>
</li>
<li>
<p><strong>Reactor Agent:</strong> Ideal for situations where multiple inputs and multiple outputs are needed for each agent.</p>
</li>
</ul>
<p>Learn more in <a href="https://docs.rs/yew-agent/latest/yew_agent/" target="_blank" rel="noopener noreferrer">documentation of yew-agent</a></p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="4-performance-improvements-a-faster-and-smoother-experience">4. Performance Improvements: A Faster and Smoother Experience<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#4-performance-improvements-a-faster-and-smoother-experience" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Yew 0.21 brings substantial performance improvements. Your web applications will run faster and more efficiently, thanks to optimizations that reduce memory usage and enhance rendering.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="call-for-contributors">Call for Contributors<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#call-for-contributors" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>The Yew project thrives on community involvement, and we welcome contributors with open arms. Whether you're an experienced Rust developer or just starting your journey, there are plenty of ways to get involved and make a meaningful impact on Yew's growth.</p>
<p>Here are some areas where you can contribute:</p>
<ul>
<li>
<p><strong>Code Contributions:</strong> If you're passionate about web development with Rust, consider contributing code to Yew. Whether it's fixing bugs, adding new features, or improving documentation, your code can help make Yew even better.</p>
</li>
<li>
<p><strong>Documentation:</strong> Clear and comprehensive documentation is vital for any project's success. You can contribute by improving documentation, writing tutorials, or creating examples that help others understand and use Yew effectively.</p>
</li>
<li>
<p><strong>Testing and Bug Reporting:</strong> Testing Yew and reporting bugs you encounter is a valuable contribution. Your feedback helps us identify and fix issues, ensuring a more stable framework for everyone.</p>
</li>
<li>
<p><strong>Community Support:</strong> Join discussions, chat rooms (we have our own Discord and Matrix!), or social media to assist other developers using Yew. Sharing your knowledge and helping others solve problems is a fantastic way to contribute.</p>
</li>
</ul>
<p>Contributing to open-source projects like Yew is not only a way to give back to the community but also an excellent opportunity to learn, collaborate, and enhance your skills.</p>
<p>To get started, check out the Yew GitHub repository and the contribution guidelines. Your contributions are highly appreciated and play a crucial role in shaping the future of Yew. Join us in this exciting journey!</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="thanks">Thanks!<a href="https://yew.rs/ja/blog/2023/09/23/release-0-21#thanks" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>Many people came together to create Yew 0.21. We couldn't have done it without all of you. Thanks!</p>
<p>See <a href="https://github.com/yewstack/yew/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer">the full changelog</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Releasing Yew 0.20]]></title>
            <link>https://yew.rs/ja/blog/2022/11/24/release-0-20</link>
            <guid>https://yew.rs/ja/blog/2022/11/24/release-0-20</guid>
            <pubDate>Thu, 24 Nov 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The Yew team is happy to announce a new, long overdue, version of Yew: v0.20.]]></description>
            <content:encoded><![CDATA[<p>The Yew team is happy to announce a new, long overdue, version of Yew: v0.20.
Yew is a framework for creating reliable and efficient web applications.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-new">What's new<a href="https://yew.rs/ja/blog/2022/11/24/release-0-20#whats-new" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>This release comes with new features aimed at improving the user experience, such as server-rendering and render-as-you-fetch approach for data-fetching.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="ssr">SSR<a href="https://yew.rs/ja/blog/2022/11/24/release-0-20#ssr" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>Yew now fully supports rendering on the server. Rendering on the server means users will get a rendered HTML and will not have to wait to be able to see anything until the entire WebAssembly bundle is downloaded and initial render has completed. With SSR, the page will be visible instantly, and interactable as soon as hydration finishes.</p>
<p>Learn more at <a href="https://yew.rs/ja/docs/advanced-topics/server-side-rendering">Server-side rendering</a></p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="data-fetching">Data fetching<a href="https://yew.rs/ja/blog/2022/11/24/release-0-20#data-fetching" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h3>
<p>With SSR comes new ways of data-fetching. The newly added <a href="https://api.yew.rs/next/yew/functional/macro.use_prepared_state.html" target="_blank" rel="noopener noreferrer"><code>use_prepared_state!</code></a> hook can be used to fetch data while rendering on the server and seamlessly use it in the component.</p>
<p>For client-side fetching, Yew now supports render-as-you-fetch approach with <a href="https://yew.rs/ja/docs/concepts/suspense">Suspense</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-upgrade">How to upgrade<a href="https://yew.rs/ja/blog/2022/11/24/release-0-20#how-to-upgrade" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>There have been breaking changes in this release. Our <a href="https://yew.rs/ja/docs/migration-guides/yew/from-0_19_0-to-0_20_0">migration guides</a> go over how to upgrade each over of the new crates.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="thanks">Thanks!<a href="https://yew.rs/ja/blog/2022/11/24/release-0-20#thanks" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク" translate="no">​</a></h2>
<p>Many people came together to help make this release happen. We couldn't have done it without all of you. Thanks!</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Hello Yew]]></title>
            <link>https://yew.rs/ja/blog/2022/01/20/hello-yew</link>
            <guid>https://yew.rs/ja/blog/2022/01/20/hello-yew</guid>
            <pubDate>Thu, 20 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[This is the first Yew blog post.]]></description>
            <content:encoded><![CDATA[<p>This is the first Yew blog post.</p>
<p>Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly.</p>]]></content:encoded>
        </item>
    </channel>
</rss>