<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>動的 &#8211; ケケンタの独学ITブログ</title>
	<atom:link href="https://kekenta-it-blog.com/tag/%E5%8B%95%E7%9A%84/feed/" rel="self" type="application/rss+xml" />
	<link>https://kekenta-it-blog.com</link>
	<description>プログラミングやWeb制作の情報を発信</description>
	<lastBuildDate>Mon, 24 Feb 2025 06:30:12 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://kekenta-it-blog.com/wp-content/uploads/2023/07/cropped-KEKENTA-BLOG-32x32.png</url>
	<title>動的 &#8211; ケケンタの独学ITブログ</title>
	<link>https://kekenta-it-blog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【React】 条件によってクラス名（className）を動的に付与する方法【３パターン】</title>
		<link>https://kekenta-it-blog.com/react-dynamic-add-class/</link>
					<comments>https://kekenta-it-blog.com/react-dynamic-add-class/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 04 Nov 2024 11:26:57 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[className]]></category>
		<category><![CDATA[フロントエンド]]></category>
		<category><![CDATA[ライブラリ]]></category>
		<category><![CDATA[動的]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=12265</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/eye-catch__react-dynamic-add-class__12265-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では Reactで条件によってクラス名（className）を動的に付与する方法 を解説します。 動的にクラス名を付与することで、stateの値によって要素の見た目（装飾）に変化を付けるなど、コンポーネントにちょ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/eye-catch__react-dynamic-add-class__12265-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong><span class="swl-marker mark_yellow">Reactで条件によってクラス名（className）を動的に付与する方法</span></strong></p>



<p>を解説します。</p>



<p>動的にクラス名を付与することで、stateの値によって要素の見た目（装飾）に変化を付けるなど、コンポーネントにちょっとした動きを加えることが可能です。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>特定の条件に一致したときだけクラス名を付与する方法</li>



<li>条件によってclassNameの内容を変える方法</li>



<li>条件に一致したときだけ＋αのクラス名を追加する方法</li>
</ul>
</div></div>



<h2 class="wp-block-heading">パターン①　特定の条件に一致したときだけクラス名を付与する</h2>



<p class="is-style-balloon_box"><strong>単一のクラス名を付与</strong></p>



<div class="hcb_wrap u-mb-ctrl u-mb-40"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={judge && &quot;sample-class&quot;}&gt;
   hoge  
&lt;/p&gt;</code></pre></div>



<p class="is-style-balloon_box"><strong>複数のクラス名を付与</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={judge && &quot;sample-class01 sample-class02&quot;}&gt;
   hoge  
&lt;/p&gt;</code></pre></div>



<p class="is-style-big_icon_check">これは<strong>論理演算子</strong><code>&amp;&amp;</code>を利用した書き方です。<br><code>条件 &amp;&amp; クラス名</code>とすることで、<strong><span class="swl-inline-color has-swl-deep-02-color">左辺（条件）</span>がtrueのときだけ<span class="swl-inline-color has-swl-deep-03-color">右辺（クラス名）</span>を付与する</strong>という動きになります。</p>



<p>上記のソースコードでは、<code>judge</code>がtrueなら右辺に記述してあるクラス（sample-class01、sample-class02）が追加されます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-pattern1-hosoku">補足｜三項演算子を使用した書き方</h3>



<p class="is-style-bg_stripe">上記のソースコードは以下のように書くことも可能です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={judge ? &quot;sample-class&quot; : &quot;&quot;}&gt;
   hoge  
&lt;/p&gt;</code></pre></div>



<p class="is-style-big_icon_check">こちらは<strong>三項演算子</strong>を利用したもので、<code>条件式 ? "trueのとき" : "falseのとき"</code>という書き方が基本的な構文になります。<br><br><strong>三項演算子</strong>について詳しく知りたい方は<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Conditional_operator">MDN公式サイト</a><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsExternalLink" data-id="83" aria-hidden="true" class="swl-inline-icon"> </span>をご覧ください。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">パターン②　条件によってclassNameの内容を変える方法</h2>



<p class="is-style-bg_stripe"><strong>条件によって付与するクラス名を切り替えたい場合</strong>は以下のように記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={judge ? &quot;sample-class01&quot; : &quot;sample-class02&quot;}&gt;
   hoge
&lt;/p&gt;</code></pre></div>



<p class="is-style-big_icon_check">こちらも、パターン①の<a href="#anc-pattern1-hosoku">補足｜三項演算子を使用した書き方</a>でご紹介した三項演算子を利用しています。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">パターン③　条件に一致したときだけ＋αのクラス名を追加する</h2>



<p class="is-style-bg_stripe"><strong>共通のクラスが設定済みで、<span class="swl-marker mark_yellow">条件に一致したときだけ＋αで別のクラス名を追加したい場合</span></strong>は以下のように記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={`sample-class01 ${judge && &quot;sample-class02&quot;}`}&gt;
   hoge  
&lt;/p&gt;</code></pre></div>



<p>このように書くことで、<code>judge</code>がtrueのときは<code>sample-class02</code>が追加されるようになります。</p>



<p class="is-style-big_icon_check">書き方のポイントとしては、クラス名全体を<strong>バッククォート</strong><code>`</code>（Windowsなら<code>Shift + @</code>で入力）で囲み、その中に条件文を埋め込んでいます。<br><br>これはいわゆる<strong>テンプレートリテラル</strong>（参考：<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals">MDN公式サイト</a><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsExternalLink" data-id="89" aria-hidden="true" class="swl-inline-icon"> </span>）というもので、今回のソースコードでは<strong>文字列の中に条件文を埋め込んでいます。</strong></p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">補足｜文字列結合と論理演算子「&amp;&amp;」を組み合わせる</h3>



<p class="is-style-bg_stripe">ちなみに<strong>テンプレートリテラルを使用しない場合</strong>でも、<strong>文字列結合と論理演算子を組み合わせる</strong>ことで、以下のように書くことが可能です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>&lt;p className={&#39;sample-class &#39; + (judge && &quot;sample-class02&quot;)}&gt;
   hoge  
&lt;/p&gt;</code></pre></div>



<p class="is-style-big_icon_caution">注意点として、<code>'sample-class '</code>の末尾に半角スペースを入力して、クラス名が正しく区切られるようにしておく必要があります。<br>※<strong><span class="swl-marker mark_orange">忘れがち＋気が付きづらい</span></strong>のでお気を付けください。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>以上が<strong><span class="swl-marker mark_yellow">Reactで条件によってクラス名（className）を動的に付与する方法</span></strong>でした。</p>



<p>Reactは動的なWebサイトやアプリを実装できるJavascriptライブラリです。</p>



<p>今回ご紹介したように、条件式を用いることで、動的にclassName（クラス名）を書き換えることも可能です。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>何気ない装飾の動的な変化などがユーザビリティを向上させることにも繋がります！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この記事が少しでもお役に立ったなら何よりです！</p>



<p>当ブログではLaravelやPHP、Web制作などの情報も発信しています。Webアプリ開発にご興味のある方はぜひそちらもご覧いただけるとうれしいです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-dynamic-add-class/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
