<?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>Webアプリ &#8211; ケケンタの独学ITブログ</title>
	<atom:link href="https://kekenta-it-blog.com/category/web-app/feed/" rel="self" type="application/rss+xml" />
	<link>https://kekenta-it-blog.com</link>
	<description>プログラミングやWeb制作の情報を発信</description>
	<lastBuildDate>Thu, 24 Jul 2025 06:23:35 +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>Webアプリ &#8211; ケケンタの独学ITブログ</title>
	<link>https://kekenta-it-blog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</title>
		<link>https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/</link>
					<comments>https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 11:42:16 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15557</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では、当ブログで公開しているReact初心者向けTODOアプリ開発シリーズをご紹介します。 基本編（第1回〜第7回）は既に公開済みで、発展編（第1回〜第5回）はこれから順次執筆していく予定です。  記事一覧はこち [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-1024x576.jpg" class="webfeedsFeaturedVisual" /></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>この記事では、当ブログで公開している<strong>React初心者向けTODOアプリ開発シリーズ</strong>をご紹介します。</p>



<p class="is-style-icon_pen">基本編（第1回〜第7回）は既に公開済みで、発展編（第1回〜第5回）はこれから順次執筆していく予定です。</p>



<p><strong><a href="#anc-posts-list"><span data-icon="LsChevronDown" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJtMjIuOSAzMy0xMy0xMy4xYy0uOC0uOC0uOC0yIDAtMi44LjgtLjggMi0uOCAyLjggMEwyNCAyOC40bDExLjMtMTEuM2MuOC0uOCAyLS44IDIuOCAwIC44LjguOCAyIDAgMi44TDI1LjEgMzNjLS42LjYtMS42LjYtMi4yIDB6Ij48L3BhdGg+PC9zdmc+)" aria-hidden="true" class="swl-inline-icon"> </span>記事一覧はこちら</a></strong></p>



<h2 class="wp-block-heading">シリーズ概要</h2>



<h3 class="wp-block-heading">シリーズの目的</h3>



<p>初心者から実践的なReact開発者への成長を目指し、段階的に学習を進めていきます。最終的にはデータベース連携ができる本格的なTODOアプリを完成させることが目標です。</p>



<h3 class="wp-block-heading">学習の流れ</h3>



<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>基本編（第1回〜第7回）</strong>: Reactの基礎から完全なCRUD操作まで</li>



<li><strong>発展編（第1回〜第5回）</strong>: より高度な機能と実践的な開発スキル</li>
</ul>



<h3 class="wp-block-heading">最終成果物</h3>



<p>データベース連携ができる本格的なTODOアプリケーション</p>



<h3 class="wp-block-heading">対象読者</h3>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>React初心者の方</li>



<li>実践的なアプリケーション開発を学びたい方</li>



<li>段階的にスキルアップしたい方</li>
</ul>



<h2 class="wp-block-heading">なぜ今Reactを学ぶべきなのか</h2>



<p>生成AIが急速に発展し、フロントエンド開発の自動化が進んでいる現在でも、Reactの重要性は衰えるどころか、むしろ高まっています。</p>



<p>ChatGPTやGitHub CopilotなどのAIツールがフロントエンドコードを生成する際にも、Reactが採用されていることがしばしば。AIという比較的新しい分野においても、Reactは活躍しているのです。</p>



<h3 class="wp-block-heading">Reactが選ばれ続ける理由</h3>



<ul class="wp-block-list is-style-good_list -list-under-dashed">
<li><strong>豊富な学習リソース</strong>: 大量のチュートリアル、ドキュメント、コミュニティサポート</li>



<li><strong>安定したエコシステム</strong>: 長年の実績と継続的な改善</li>



<li><strong>高い求人需要</strong>: 世界中の企業でReact開発者が求められている</li>



<li><strong>AIとの相性</strong>: 生成AIが理解しやすく、効率的にコード生成できる構造</li>



<li><strong>将来性</strong>: Meta（旧Facebook）による継続的な開発とサポート</li>
</ul>



<p>Reactを学ぶことで、AIツールを活用した効率的な開発と、手動での細かい調整の両方を身につけることができます。これは、これからの時代の開発者にとって非常に重要なスキルです。</p>



<h2 class="wp-block-heading" id="anc-posts-list">基本編の学習内容（第1回〜第7回）</h2>



<p class="has-text-align-center is-style-balloon_box u-mb-ctrl u-mb-10"><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></p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="655" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg" alt="TODOアプリ（基本編）完成イメージ" class="wp-image-15513" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-300x192.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-768x491.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01.jpg 1268w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（基本編）</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>記事リスト</strong></p>



<ul class="swell-block-linkList is-style-button" style="--the-color:var(--color_main)">
<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-todo-app-development-basics/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第1回：Reactの基礎と開発環境の準備</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-components-jsx-understanding/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第2回：コンポーネントとJSXの理解</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-state-management-usestate/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第3回：状態管理の基礎 &#8211; useState</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-event-handling-form-processing/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第4回：イベントハンドリングとフォーム処理</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-list-display-conditional-rendering/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第5回：リスト表示と条件付きレンダリング</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第6回：TODOの編集と削除機能</span></a></li>



<li class="swell-block-linkList__item"><a class="swell-block-linkList__link" href="https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/"><svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-arrowCircleRight swell-block-linkList__icon -right" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M24 45C12.4 45 3 35.6 3 24S12.4 3 24 3s21 9.4 21 21-9.4 21-21 21zm0-39C14.1 6 6 14.1 6 24s8.1 18 18 18 18-8.1 18-18S33.9 6 24 6z" /><path d="m34.3 22.9-8.8-8.8c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3H14.8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h14.8l-6.3 6.3c-.6.6-.6 1.5 0 2.1s1.5.6 2.1 0l8.8-8.8c.7-.6.7-1.6.1-2.2z" /></svg><span class="swell-block-linkList__text">第7回：useEffectとlocalStorageを使ったデータ永続化</span></a></li>
</ul>



<h3 class="wp-block-heading">第1回：Reactの基礎と開発環境の準備</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第1回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-development-basics__15419-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-development-basics/">【React×TODOアプリ】Reactの基礎と開発環境の準備【基本編：第1回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>Reactの基本概念（仮想DOM、コンポーネントベース開発）</li>



<li>Node.jsとnpmのインストール</li>



<li>Create React Appでのプロジェクト作成</li>



<li>JSXの基本文法</li>



<li>初回コンポーネントの作成</li>
</ul>
</div></div>



<p class="is-style-icon_good">開発環境が整い、基本的なReactアプリが作れるようになります。</p>



<h3 class="wp-block-heading">第2回：コンポーネントとJSXの理解</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第2回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-components-jsx-understanding__15432-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-components-jsx-understanding/">【React×TODOアプリ】コンポーネントとJSXの理解【基本編：第2回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>コンポーネントの概念と種類（関数コンポーネント、クラスコンポーネント）</li>



<li>JSXの詳細な文法</li>



<li>Propsの受け渡し</li>



<li>コンポーネントの分割と再利用</li>
</ul>
</div></div>



<p class="is-style-icon_good">コンポーネントベース開発の考え方を理解し、再利用可能なコンポーネントの設計ができるようになります。</p>



<h3 class="wp-block-heading">第3回：状態管理の基礎 &#8211; useState</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第3回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-state-management-usestate__15448-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-state-management-usestate/">【React×TODOアプリ】状態管理の基礎 &#8211; useState【基本編：第3回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>useStateフックの基本</li>



<li>状態の更新方法</li>



<li>配列とオブジェクトの状態管理</li>



<li>TODOリストの基本構造作成</li>
</ul>
</div></div>



<p class="is-style-icon_good">Reactでの状態管理の基本を理解し、動的な状態管理ができるTODOアプリを構築できます。</p>



<h3 class="wp-block-heading">第4回：イベントハンドリングとフォーム処理</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第4回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-event-handling-form-processing__15483-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-event-handling-form-processing/">【React×TODOアプリ】イベントハンドリングとフォーム処理【基本編：第4回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>イベントハンドラーの書き方</li>



<li>フォームの制御（制御されたコンポーネント）</li>



<li>入力値の検証とバリデーション</li>



<li>エラーハンドリングの基礎</li>
</ul>
</div></div>



<p class="is-style-icon_good">ユーザー入力の処理方法を理解し、適切なフォーム機能を実装できるようになります。</p>



<h3 class="wp-block-heading">第5回：リスト表示と条件付きレンダリング</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第5回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-list-display-conditional-rendering__15497-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-list-display-conditional-rendering/">【React×TODOアプリ】リスト表示と条件付きレンダリング【基本編：第5回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>map関数を使ったリスト表示</li>



<li>keyプロパティの重要性</li>



<li>条件付きレンダリング（&amp;&amp;演算子、三項演算子）</li>



<li>フィルタリング機能の実装</li>
</ul>
</div></div>



<p class="is-style-icon_good">動的なリスト表示の実装方法を理解し、条件に応じたUI制御ができるようになります。</p>



<h3 class="wp-block-heading">第6回：TODOの編集と削除機能</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第6回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-edit-delete-crud__15510-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/">【React×TODOアプリ】編集・削除機能の実装【基本編：第6回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>配列の操作（filter、map、findIndex）</li>



<li>イベントの伝播と停止</li>



<li>編集モードの切り替え</li>



<li>キーボードショートカットの実装</li>
</ul>
</div></div>



<p class="is-style-icon_good">完全なCRUD操作（Create、Read、Update、Delete）ができるTODOアプリを完成させられます。</p>



<h3 class="wp-block-heading">第7回：useEffectとlocalStorageを使ったデータ永続化</h3>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第7回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-useeffect-localstrage__15530-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/">【React×TODOアプリ】useEffectと副作用・ローカルストレージ【基本編：第7回】</a>
											</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>useEffectフックの基本</li>



<li>依存配列の理解</li>



<li>localStorageを使ったデータ永続化</li>
</ul>
</div></div>



<p class="is-style-icon_good">副作用の適切な管理方法を理解し、ブラウザでのデータ永続化機能を実装できるようになります。</p>



<h2 class="wp-block-heading">発展編の学習内容（第1回〜第5回）</h2>



<p class="is-style-icon_info"><strong>※発展編の記事はこれから順次執筆していく予定です。</strong></p>



<h3 class="wp-block-heading">第1回：スタイリングとUI/UX改善（予定）</h3>



<p class="is-style-icon_pen">鋭意制作中です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>CSS-in-JS（styled-components）の基礎</li>



<li>CSSモジュールの使用</li>



<li>レスポンシブデザインの実装</li>



<li>アニメーションの追加</li>
</ul>
</div></div>



<p class="is-style-icon_good">モダンなスタイリング手法を理解し、美しく使いやすいUIを設計できるようになります。</p>



<h3 class="wp-block-heading">第2回：カスタムフックとロジックの分離（予定）</h3>



<p class="is-style-icon_pen">鋭意制作中です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>カスタムフックの作成</li>



<li>ロジックとUIの分離</li>



<li>useReducerの基礎</li>



<li>エラーハンドリングの改善</li>
</ul>
</div></div>



<p class="is-style-icon_good">コードの再利用性と保守性を向上させる方法を理解し、より複雑な状態管理ができるようになります。</p>



<h3 class="wp-block-heading">第3回：コンテキストAPIとグローバル状態管理（予定）</h3>



<p class="is-style-icon_pen">鋭意制作中です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>Context APIの基本</li>



<li>ProviderとConsumerの使い方</li>



<li>グローバル状態の設計</li>



<li>パフォーマンスの最適化</li>
</ul>
</div></div>



<p class="is-style-icon_good">大規模アプリケーションでの状態管理方法を理解し、コンポーネント間のデータ共有ができるようになります。</p>



<h3 class="wp-block-heading">第4回：API連携の基礎（予定）</h3>



<p class="is-style-icon_pen">鋭意制作中です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>fetch APIの基本</li>



<li>async/awaitの使い方</li>



<li>エラーハンドリング</li>



<li>ローディング状態の管理</li>
</ul>
</div></div>



<p class="is-style-icon_good">外部APIとの連携方法を理解し、非同期処理の適切な実装ができるようになります。</p>



<h3 class="wp-block-heading">第5回：データベース連携とデプロイ（予定）</h3>



<p class="is-style-icon_pen">鋭意制作中です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> </strong><strong>学べること</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>バックエンドAPIとの連携</li>



<li>データベース（SQLite/PostgreSQL）の設定</li>



<li>環境変数の管理</li>



<li>アプリケーションのデプロイ（Vercel/Netlify）</li>
</ul>
</div></div>



<p class="is-style-icon_good">フルスタックアプリケーションの開発フローを理解し、本格的なアプリケーションのデプロイ方法を学べます。</p>



<h2 class="wp-block-heading">完成するTODOアプリの機能一覧</h2>



<p class="is-style-bg_stripe">シリーズを完了すると、以下の機能を持つ本格的なTODOアプリが完成します。</p>



<h3 class="wp-block-heading">基本機能</h3>



<ul class="wp-block-list is-style-good_list">
<li>基本的なCRUD操作（作成・読み取り・更新・削除）</li>



<li>完了/未完了の切り替え</li>



<li>優先度設定とバッジ表示</li>



<li>フィルタリング機能（すべて・未完了・完了）</li>



<li>データの永続化（localStorage）</li>
</ul>



<h3 class="wp-block-heading">発展機能</h3>



<ul class="wp-block-list is-style-good_list">
<li>レスポンシブデザイン</li>



<li>ダークモード対応</li>



<li>検索機能</li>



<li>統計表示</li>



<li>エラーハンドリング</li>



<li>ローディング状態の管理</li>
</ul>



<h2 class="wp-block-heading">学習のポイントとコツ</h2>



<h3 class="wp-block-heading">段階的な学習</h3>



<p>基本から応用へ、無理なくステップアップしていくことが重要です。各回の内容をしっかり理解してから次に進みましょう。</p>



<h3 class="wp-block-heading">実践的なアプローチ</h3>



<p>理論だけでなく、実際に手を動かして学んでいくことで、より深い理解が得られます。コードを書いて、動作確認をしながら進めましょう。</p>



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



<p class="is-style-icon_good">このシリーズを通じて、Reactの基礎から実践的なアプリケーション開発まで、段階的に学習していくことができます。</p>



<h3 class="wp-block-heading">身につくスキル</h3>



<ul class="wp-block-list is-style-good_list">
<li>Reactの基本概念と開発手法</li>



<li>コンポーネントベース開発の実践</li>



<li>状態管理の適切な選択と実装</li>



<li>ユーザビリティを考慮したUI設計</li>



<li>フルスタックアプリケーション開発</li>
</ul>



<h3 class="wp-block-heading">継続的な学習の重要性</h3>



<p>技術は日々進歩しています。このシリーズで基礎を固めた後も、新しい技術やベストプラクティスを学び続けることが重要です。</p>



<h3 class="wp-block-heading">読者へのメッセージ</h3>



<p>Reactの学習は、最初は難しく感じるかもしれませんが、段階的に進めていくことで必ず身につきます。基本編から始めて、一つずつ確実に理解していきましょう。発展編の記事も順次公開していきますので、お楽しみに！</p>



<p><strong>基本編の記事は既に公開済みですので、ぜひ<a href="https://kekenta-it-blog.com/react-todo-app-development-basics/" data-type="post" data-id="15419">第1回</a>から順番に学習を始めてください。</strong></p>



<h2 class="wp-block-heading">今こそReactを学ぶ価値がある</h2>



<p>生成AI時代において、Reactの価値はさらに高まっていると言えます。AIツールがフロントエンドコードを生成する際のReactを採用されていることからも、その重要性が証明されています。</p>



<p>僕自身、ここ数か月の間に様々な生成AIやAIエージェントに触れてきて、その中でフロントエンド言語の多くがReactで出力されるケースを目の当たりにしてきました。</p>



<p>生成AIが出力したソースコードを訳も分からず扱うことと、その内容をしっかり理解したうえでソフトウェアへ組み込むことの間には大きな隔たりがあります。だからこそ、これまでReactを学んだことがないという方も、最低限の基本を知るだけでも周囲の方との大きな差になると考えています。</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/11/kekenta-icon-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/11/kekenta-icon-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>この記事でご紹介したTODOアプリ開発シリーズでは、Reactの基本的な解説を交えながら実際にTODOアプリ開発を進めることができます。React初心者の方でも安心して取り組むことができるので、これを機にぜひReactの学習に挑戦してみてください！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>気になる第1回目はこちらからご覧いただけます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ第1回</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-development-basics__15419-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-development-basics/">【React×TODOアプリ】Reactの基礎と開発環境の準備【基本編：第1回】</a>
						<span class="p-blogCard__excerpt">Reactで作るTODOアプリ開発シリーズ第１回 このシリーズでは、Reactの基礎から実践的なTODOアプリの開発まで、段階的に学習していきます。最終的には、基本編～発展編を&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>それでは、最後までご覧いただきありがとうございました！</p>


<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】useEffectと副作用・ローカルストレージ【基本編：第7回】</title>
		<link>https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/</link>
					<comments>https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 02:09:10 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15530</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-useeffect-localstrage__15530-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第７回（基本編 最終回） いよいよ基本編の最終回となるこの記事では、 ReactのuseEffectフックを使った副作用処理とローカルストレージによるデータ永続化 について学びま [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-useeffect-localstrage__15530-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第７回（基本編 最終回）</strong></p>



<p>いよいよ基本編の最終回となるこの記事では、</p>



<p class="has-text-align-center is-style-big_kakko_box">Reactの<strong>useEffectフックを使った副作用処理</strong>と<strong>ローカルストレージによるデータ永続化</strong></p>



<p>について学びます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-edit-delete-crud__15510-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/">【React×TODOアプリ】編集・削除機能の実装【基本編：第6回】</a>
											</div>
				</div>
			</div>
		</div>


<p><a href="https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/">前回</a>は<strong>編集・削除機能を追加し、基本的なCRUD操作を完成</strong>させました。今回は、TODOリストの保存や、実用的な副作用処理の基礎を身につけていきます。</p>



<p>これにより、アプリのデータを永続化ができるようになります。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>useEffectフックの基本的な使い方</li>



<li>副作用（サイドエフェクト）とは何か</li>



<li>ローカルストレージへの保存・読み込み</li>
</ul>
</div></div>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="602" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-1024x602.jpg" alt="TODOアプリ（第７回：完成イメージ）その①" class="wp-image-15542" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-1024x602.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-300x176.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-768x452.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01.jpg 1107w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第７回：完成イメージ）その①</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">前回までのコード</h2>



<p>第6回までで作成・修正したファイル構成と主要なコードは以下の通りです。</p>



<h3 class="wp-block-heading">ファイル構成</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   ├── TodoList.js
│   ├── TodoHeader.js
│   ├── TodoForm.js
│   └── TodoFilter.js</code></pre></div>



<h3 class="wp-block-heading">TodoItem.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle, onDelete, onEdit }) {
  const [isEditing, setIsEditing] = useState(false);
  const [editText, setEditText] = useState(text);

  const handleEdit = () =&gt; {
    setIsEditing(true);
    setEditText(text);
  };

  const handleSave = () =&gt; {
    if (editText.trim()) {
      onEdit(id, editText);
      setIsEditing(false);
    }
  };

  const handleCancel = () =&gt; {
    setIsEditing(false);
    setEditText(text);
  };

  const handleKeyDown = (event) =&gt; {
    if (event.key === &#39;Enter&#39;) {
      handleSave();
    }
    if (event.key === &#39;Escape&#39;) {
      handleCancel();
    }
  };

  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input
        type=&quot;checkbox&quot;
        checked={completed}
        onChange={() =&gt; onToggle(id)}
      /&gt;
      {isEditing ? (
        &lt;div className=&quot;edit-section&quot;&gt;
          &lt;input
            type=&quot;text&quot;
            value={editText}
            onChange={(e) =&gt; setEditText(e.target.value)}
            onKeyDown={handleKeyDown}
            className=&quot;edit-input&quot;
            autoFocus
          /&gt;
          &lt;button onClick={handleSave} className=&quot;save-button&quot;&gt;保存&lt;/button&gt;
          &lt;button onClick={handleCancel} className=&quot;cancel-button&quot;&gt;キャンセル&lt;/button&gt;
        &lt;/div&gt;
      ) : (
        &lt;div className=&quot;todo-content&quot;&gt;
          &lt;span style={{ textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; }}&gt;{text}&lt;/span&gt;
          &lt;span className={`priority-badge ${priority}`}&gt;{priority === &#39;high&#39; ? &#39;高&#39; : priority === &#39;medium&#39; ? &#39;中&#39; : &#39;低&#39;}&lt;/span&gt;
          &lt;div className=&quot;todo-actions&quot;&gt;
            &lt;button onClick={handleEdit} className=&quot;edit-button&quot;&gt;編集&lt;/button&gt;
            &lt;button onClick={() =&gt; onDelete(id)} className=&quot;delete-button&quot;&gt;削除&lt;/button&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      )}
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">TodoList.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle, onDelete, onEdit }) {
  if (todos.length === 0) {
    return (
      &lt;div className=&quot;empty-state&quot;&gt;
        &lt;p&gt;TODOがありません。新しいTODOを追加してください。&lt;/p&gt;
      &lt;/div&gt;
    );
  }
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
          onDelete={onDelete}
          onEdit={onEdit}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;
import TodoFilter from &#39;./TodoFilter&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);
  const [filter, setFilter] = useState(&#39;all&#39;);

  const filteredTodos = todos.filter(todo =&gt; {
    if (filter === &#39;all&#39;) return true;
    if (filter === &#39;completed&#39;) return todo.completed;
    if (filter === &#39;pending&#39;) return !todo.completed;
    return true;
  });

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt;
      prevTodos.map(todo =&gt;
        todo.id === id
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  const deleteTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; prevTodos.filter(todo =&gt; todo.id !== id));
  };

  const editTodo = (id, newText) =&gt; {
    setTodos(prevTodos =&gt;
      prevTodos.map(todo =&gt;
        todo.id === id
          ? { ...todo, text: newText }
          : todo
      )
    );
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoFilter
        filter={filter}
        onFilterChange={setFilter}
        totalCount={todos.length}
        activeCount={todos.filter(todo =&gt; !todo.completed).length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList
        todos={filteredTodos}
        onToggle={toggleTodo}
        onDelete={deleteTodo}
        onEdit={editTodo}
      /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">App.css</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.edit-section {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}
.edit-input {
  flex: 1;
  padding: 8px 12px;
  border: 2px solid #007bff;
  border-radius: 4px;
  font-size: 14px;
  outline: none;
}
.save-button {
  padding: 6px 12px;
  background-color: #28a745;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.save-button:hover {
  background-color: #218838;
}
.cancel-button {
  padding: 6px 12px;
  background-color: #6c757d;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.cancel-button:hover {
  background-color: #5a6268;
}
.todo-actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
}
.edit-button {
  padding: 4px 8px;
  background-color: #ffc107;
  color: #212529;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.edit-button:hover {
  background-color: #e0a800;
}
.delete-button {
  padding: 4px 8px;
  background-color: #dc3545;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.delete-button:hover {
  background-color: #c82333;
}</code></pre></div>


<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">useEffectと副作用の基礎</h2>



<p class="is-style-bg_stripe">編集・削除機能を実装する前に、必要な前提知識を整理しておきましょう。</p>



<h3 class="wp-block-heading">副作用（サイドエフェクト）とは</h3>



<p>レンダリング以外の処理（データ取得、ローカルストレージ操作、タイマー設定など）のことを指します。</p>



<h3 class="wp-block-heading">useEffectの基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import { useEffect } from &#39;react&#39;;

useEffect(() =&gt; {
  // 副作用処理
  return () =&gt; {
    // クリーンアップ処理（省略可）
  };
}, [依存配列]);</code></pre></div>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>依存配列が空：マウント時のみ実行</li>



<li>依存配列に値：その値が変化したときに実行</li>
</ul>
</div></div>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>マウントとは？</strong></span></div><div class="cap_box_content">
<p>Reactにおける<strong>マウント</strong>とは、コンポーネントが画面上に初めて表示されるタイミングのことを指します。Reactでは、コンポーネントが生成されてDOMに追加されることを「マウント」と呼びます。</p>
</div></div>



<h4 class="wp-block-heading">【サンプル】useEffectでコンソールにメッセージを表示</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useEffect } from &#39;react&#39;;

function SampleComponent() {
  useEffect(() =&gt; {
    console.log(&#39;コンポーネントがマウントされました&#39;);
    return () =&gt; {
      console.log(&#39;コンポーネントがアンマウントされました&#39;);
    };
  }, []);

  return &lt;div&gt;useEffectのサンプル&lt;/div&gt;;
}</code></pre></div>


<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>Webブラウザにデータを保存できる仕組み</strong>です。保存したデータはページをリロードしたり、ブラウザを閉じたりしても消えずに残ります。これにより、ユーザーが入力した情報やアプリの状態を永続的に保持することができます。</p>



<p>例えば、TODOリストの内容をローカルストレージに保存しておけば、次回アクセス時にも前回のリストがそのまま表示されるようになります。</p>



<h3 class="wp-block-heading">保存先と確認方法</h3>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>ローカルストレージの保存先は、各ブラウザのlocalStorage領域です。</li>



<li>Chromeの場合、F12キーで開発者ツールを開き、「Application」タブ → 「Storage」→「Local Storage」→該当ドメインを選択すると、保存されているデータを確認・編集できます。</li>



<li>保存キー（例：todos）や値（JSON形式）もここで直接確認できます。</li>
</ul>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li>ローカルストレージには保存容量（一般的に5MB程度）の制限があります。</li>



<li>同じドメイン内のページであればデータは共有されますが、他のブラウザや端末とは共有されません。</li>



<li>セキュリティ上、パスワードや個人情報などの機密データは保存しないようにしましょう。</li>



<li>ユーザーが手動でローカルストレージを削除することも可能です。</li>
</ul>
</div></div>



<h2 class="wp-block-heading">【実践】ローカルストレージへのTODO保存・復元</h2>



<p class="is-style-bg_stripe">ここからは、実際に手を動かして、TODOリストをローカルストレージに保存・復元する機能を追加していきましょう。</p>



<h3 class="wp-block-heading">App.jsの修正</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState, useEffect } from &#39;react&#39;;
// ...既存のimport

function App() {
  const [todos, setTodos] = useState(() =&gt; {
    // 初回マウント時にローカルストレージから読み込み
    const saved = localStorage.getItem(&#39;todos&#39;);
    return saved ? JSON.parse(saved) : [];
  });

  // ...他のstateや関数

  // todosが変化するたびにローカルストレージへ保存
  useEffect(() =&gt; {
    localStorage.setItem(&#39;todos&#39;, JSON.stringify(todos));
  }, [todos]);

  // ...JSXはこれまで通り
}</code></pre></div>


<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>実装が完了したら、以下の点を確認してください。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="602" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-1024x602.jpg" alt="TODOアプリ（第７回：完成イメージ）その①" class="wp-image-15542" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-1024x602.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-300x176.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01-768x452.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_07_01.jpg 1107w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第７回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="421" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/image-1024x421.png" alt="TODOアプリ（第７回：完成イメージ）その①" class="wp-image-15547" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/image-1024x421.png 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/image-300x123.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/image-768x316.png 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/image.png 1421w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第７回：完成イメージ）その①</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>TODOを追加・編集・削除しても、ページをリロードしても内容が保持される</li>



<li>ローカルストレージに「todos」というキーでデータが保存されている</li>
</ul>
</div></div>



<h2 class="wp-block-heading">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">ローカルストレージに保存されない場合</dt><dd class="faq_a">
<p>localStorageのキー名やJSONの扱い、useEffectの依存配列が正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">useEffectが何度も実行される場合</dt><dd class="faq_a">
<p>依存配列の指定が正しいか確認してください。</p>
</dd></div>
</dl>


<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>今回は、useEffectフックを使った副作用処理と、ローカルストレージへのTODO保存・復元を実装しました。</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>useEffectの基本的な使い方</li>



<li>副作用の概念</li>



<li>ローカルストレージとの連携</li>



<li>クリーンアップ処理の実装</li>
</ul>


<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/11/kekenta-icon-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/11/kekenta-icon-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>これでついに「ReactのTODOアプリ開発シリーズの基本編」は最後の記事を迎えました！<br>ここまで本当にお疲れ様でした！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ここまでの内容で、TODOアプリに必要な最低限の機能は実装することができました。</p>



<p class="is-style-icon_pen">さらなるスキルアップを目指す方は、このTODOアプリを<strong>自分なりにカスタマイズしていく</strong>とよりReactへの理解を深めることができるかと思います。</p>



<p>なお、本シリーズは次回から「発展編」へ突入します。「基本編」で作成したTODOアプリをベースに、API連携やデータベース連携など、<strong>さらなる発展的な技術</strong>を学習していきます。</p>



<p>「発展編 第１回」となる次回の記事では、<strong>CSS-in-JSを活用したスタイリングとUI/UX改善</strong>に挑戦していきます。</p>



<p>次回もどうぞお楽しみに！</p>



<p class="is-style-icon_pen">次回「第８回（発展編 第１回）」の記事は鋭意制作中です。</p>


<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】編集・削除機能の実装【基本編：第6回】</title>
		<link>https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/</link>
					<comments>https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 22:21:00 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15510</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-edit-delete-crud__15510-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第６回 この記事では、 「編集」と「削除」機能 を追加し、基本的なCRUD操作を完成させます。 前回はリスト表示と条件付きレンダリングについて学習しました。今回は、ユーザーがTO [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-edit-delete-crud__15510-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第６回</strong></p>



<p>この記事では、</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>「編集」と「削除」機能</strong></p>



<p>を追加し、基本的なCRUD操作を完成させます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-list-display-conditional-rendering__15497-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-list-display-conditional-rendering/">【React×TODOアプリ】リスト表示と条件付きレンダリング【基本編：第5回】</a>
											</div>
				</div>
			</div>
		</div>


<p>前回は<strong>リスト表示と条件付きレンダリング</strong>について学習しました。今回は、ユーザーがTODOを編集・削除できるようにし、より実用的なアプリに仕上げていきます。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>配列のfilter/mapによるデータ操作</li>



<li>編集・削除機能の実装方法</li>



<li>編集モードの切り替え（条件付きレンダリング）</li>



<li>キーボードイベントの活用</li>



<li>UI/UX向上のための工夫</li>
</ul>
</div></div>


<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>編集・削除機能の実装方法を理解することで、CRUD操作を含めたReactアプリの開発が行えるようになります！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="655" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg" alt="TODOアプリ（第６回：完成イメージ）その①" class="wp-image-15513" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-300x192.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-768x491.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01.jpg 1268w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="341" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-1024x341.jpg" alt="TODOアプリ（第６回：完成イメージ）その②" class="wp-image-15514" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-1024x341.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-300x100.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-768x256.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="364" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-1024x364.jpg" alt="TODOアプリ（第６回：完成イメージ）その③" class="wp-image-15512" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-1024x364.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-300x107.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-768x273.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03.jpg 1047w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その③</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">前回までのコード</h2>



<p>第5回まで作成・修正したファイル構成と主要なコードは以下の通りです。</p>



<h3 class="wp-block-heading">ファイル構成</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   ├── TodoList.js
│   ├── TodoHeader.js
│   ├── TodoForm.js
│   └── TodoFilter.js</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;
import TodoFilter from &#39;./TodoFilter&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);
  const [filter, setFilter] = useState(&#39;all&#39;);

  // フィルタリングされたTODOリスト
  const filteredTodos = todos.filter(todo =&gt; {
    if (filter === &#39;all&#39;) return true;
    if (filter === &#39;completed&#39;) return todo.completed;
    if (filter === &#39;pending&#39;) return !todo.completed;
    return true;
  });

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt;
      prevTodos.map(todo =&gt;
        todo.id === id
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  // 新しいTODOを追加する関数
  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoFilter filter={filter} onFilterChange={setFilter} /&gt;
      &lt;TodoList todos={filteredTodos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">TodoItem.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input
        type=&quot;checkbox&quot;
        checked={completed}
        onChange={() =&gt; onToggle(id)}
      /&gt;
      &lt;span style={{ textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; }}&gt;{text}&lt;/span&gt;
      {completed && (
        &lt;span className=&quot;completed-badge&quot;&gt;完了&lt;/span&gt;
      )}
      {!completed && (
        &lt;span className=&quot;pending-badge&quot;&gt;未完了&lt;/span&gt;
      )}
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">TodoList.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle }) {
  if (todos.length === 0) {
    return (
      &lt;div className=&quot;empty-state&quot;&gt;
        &lt;p&gt;TODOがありません。新しいTODOを追加してください。&lt;/p&gt;
      &lt;/div&gt;
    );
  }
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">TodoFilter.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoFilter({ filter, onFilterChange }) {
  return (
    &lt;div className=&quot;todo-filter&quot;&gt;
      &lt;button
        className={`filter-button ${filter === &#39;all&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;all&#39;)}
      &gt;
        すべて
      &lt;/button&gt;
      &lt;button
        className={`filter-button ${filter === &#39;pending&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;pending&#39;)}
      &gt;
        未完了
      &lt;/button&gt;
      &lt;button
        className={`filter-button ${filter === &#39;completed&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;completed&#39;)}
      &gt;
        完了済み
      &lt;/button&gt;
    &lt;/div&gt;
  );
}

export default TodoFilter;</code></pre></div>



<h3 class="wp-block-heading">App.css</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-filter {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
}

.filter-button {
  padding: 8px 16px;
  border: 1px solid #ddd;
  background-color: white;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
}

.filter-button:hover {
  background-color: #f8f9fa;
}

.filter-button.active {
  background-color: #007bff;
  color: white;
  border-color: #007bff;
}

.empty-state {
  text-align: center;
  padding: 40px;
  color: #666;
  font-style: italic;
}

.completed-badge {
  background-color: #28a745;
  color: white;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  margin-left: 10px;
}

.pending-badge {
  background-color: #ffc107;
  color: #212529;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  margin-left: 10px;
}</code></pre></div>


<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 class="is-style-bg_stripe">編集・削除機能を実装する前に、必要な前提知識を整理しておきましょう。</p>



<h3 class="wp-block-heading">配列操作の基礎</h3>



<p>編集・削除機能では、配列の<code>filter</code>と<code>map</code>メソッドを活用します。</p>



<h4 class="wp-block-heading">filterメソッド</h4>



<p>配列から条件に合う要素のみを抽出するメソッドです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// 削除機能で使用：指定したID以外のTODOを残す
const newTodos = todos.filter(todo =&gt; todo.id !== idToDelete);</code></pre></div>



<h4 class="wp-block-heading">mapメソッド</h4>



<p>配列の各要素を変換するメソッドです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// 編集機能で使用：指定したIDのTODOのテキストを更新
const newTodos = todos.map(todo =&gt;
  todo.id === idToEdit
    ? { ...todo, text: newText }
    : todo
);</code></pre></div>



<h3 class="wp-block-heading">イベントの伝播と停止</h3>



<p>編集モードでは、キーボードイベント（Enter、Escape）を活用します。</p>



<p>これにより、ユーザーはマウスを使用しなくてもTODOの追加・編集・キャンセルができるようになるため、ユーザビリティの向上につながります。</p>



<h4 class="wp-block-heading">onKeyDownイベント</h4>



<p>キーが押された瞬間に発火するイベントです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>const handleKeyDown = (event) =&gt; {
  if (event.key === &#39;Enter&#39;) {
    // 保存処理
  }
  if (event.key === &#39;Escape&#39;) {
    // キャンセル処理
  }
};</code></pre></div>



<h3 class="wp-block-heading">条件付きレンダリングの応用</h3>



<p>編集モードと表示モードを切り替えるために、条件付きレンダリングを活用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>{isEditing ? (
  // 編集モードのUI
) : (
  // 表示モードのUI
)}</code></pre></div>



<h2 class="wp-block-heading">【実践】編集・削除機能の実装</h2>



<p class="is-style-bg_stripe">ここからは、実際に手を動かして、TODOの編集・削除機能を追加していきましょう。</p>



<h3 class="wp-block-heading">1. TodoItem.jsの修正</h3>



<p>既存の<code>src/TodoItem.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle, onDelete, onEdit }) {
  const [isEditing, setIsEditing] = useState(false);
  const [editText, setEditText] = useState(text);

  const handleEdit = () =&gt; {
    setIsEditing(true);
    setEditText(text);
  };

  const handleSave = () =&gt; {
    if (editText.trim()) {
      onEdit(id, editText);
      setIsEditing(false);
    }
  };

  const handleCancel = () =&gt; {
    setIsEditing(false);
    setEditText(text);
  };

  const handleKeyDown = (event) =&gt; {
    if (event.key === &#39;Enter&#39;) {
      handleSave();
    }
    if (event.key === &#39;Escape&#39;) {
      handleCancel();
    }
  };

  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input
        type=&quot;checkbox&quot;
        checked={completed}
        onChange={() =&gt; onToggle(id)}
      /&gt;
      {isEditing ? (
        &lt;div className=&quot;edit-section&quot;&gt;
          &lt;input
            type=&quot;text&quot;
            value={editText}
            onChange={(e) =&gt; setEditText(e.target.value)}
            onKeyDown={handleKeyDown}
            className=&quot;edit-input&quot;
            autoFocus
          /&gt;
          &lt;button onClick={handleSave} className=&quot;save-button&quot;&gt;保存&lt;/button&gt;
          &lt;button onClick={handleCancel} className=&quot;cancel-button&quot;&gt;キャンセル&lt;/button&gt;
        &lt;/div&gt;
      ) : (
        &lt;div className=&quot;todo-content&quot;&gt;
          &lt;span style={{ textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; }}&gt;{text}&lt;/span&gt;
          &lt;span className={`priority-badge ${priority}`}&gt;{priority === &#39;high&#39; ? &#39;高&#39; : priority === &#39;medium&#39; ? &#39;中&#39; : &#39;低&#39;}&lt;/span&gt;
          &lt;div className=&quot;todo-actions&quot;&gt;
            &lt;button onClick={handleEdit} className=&quot;edit-button&quot;&gt;編集&lt;/button&gt;
            &lt;button onClick={() =&gt; onDelete(id)} className=&quot;delete-button&quot;&gt;削除&lt;/button&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      )}
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">2. TodoList.jsの修正</h3>



<p>既存の<code>src/TodoList.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle, onDelete, onEdit }) {
  if (todos.length === 0) {
    return (
      &lt;div className=&quot;empty-state&quot;&gt;
        &lt;p&gt;TODOがありません。新しいTODOを追加してください。&lt;/p&gt;
      &lt;/div&gt;
    );
  }
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
          onDelete={onDelete}
          onEdit={onEdit}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">3. App.jsの修正</h3>



<p>既存の<code>src/App.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;
import TodoFilter from &#39;./TodoFilter&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);
  const [filter, setFilter] = useState(&#39;all&#39;);

  const filteredTodos = todos.filter(todo =&gt; {
    if (filter === &#39;all&#39;) return true;
    if (filter === &#39;completed&#39;) return todo.completed;
    if (filter === &#39;pending&#39;) return !todo.completed;
    return true;
  });

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt;
      prevTodos.map(todo =&gt;
        todo.id === id
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  const deleteTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; prevTodos.filter(todo =&gt; todo.id !== id));
  };

  const editTodo = (id, newText) =&gt; {
    setTodos(prevTodos =&gt;
      prevTodos.map(todo =&gt;
        todo.id === id
          ? { ...todo, text: newText }
          : todo
      )
    );
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoFilter
        filter={filter}
        onFilterChange={setFilter}
        totalCount={todos.length}
        activeCount={todos.filter(todo =&gt; !todo.completed).length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList
        todos={filteredTodos}
        onToggle={toggleTodo}
        onDelete={deleteTodo}
        onEdit={editTodo}
      /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">4. App.cssの追加スタイル</h3>



<p><code>src/App.css</code>に以下のスタイルを追加してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.edit-section {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}
.edit-input {
  flex: 1;
  padding: 8px 12px;
  border: 2px solid #007bff;
  border-radius: 4px;
  font-size: 14px;
  outline: none;
}
.save-button {
  padding: 6px 12px;
  background-color: #28a745;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.save-button:hover {
  background-color: #218838;
}
.cancel-button {
  padding: 6px 12px;
  background-color: #6c757d;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.cancel-button:hover {
  background-color: #5a6268;
}
.todo-actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
}
.edit-button {
  padding: 4px 8px;
  background-color: #ffc107;
  color: #212529;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.edit-button:hover {
  background-color: #e0a800;
}
.delete-button {
  padding: 4px 8px;
  background-color: #dc3545;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.delete-button:hover {
  background-color: #c82333;
}</code></pre></div>


<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>実装が完了したら、開発サーバーが起動している状態でブラウザを確認してください。以下の機能が動作することを確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="655" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg" alt="TODOアプリ（第６回：完成イメージ）その①" class="wp-image-15513" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-1024x655.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-300x192.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01-768x491.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_01.jpg 1268w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="341" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-1024x341.jpg" alt="TODOアプリ（第６回：完成イメージ）その②" class="wp-image-15514" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-1024x341.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-300x100.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02-768x256.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_02.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="364" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-1024x364.jpg" alt="TODOアプリ（第６回：完成イメージ）その③" class="wp-image-15512" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-1024x364.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-300x107.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03-768x273.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_06_03.jpg 1047w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TODOアプリ（第６回：完成イメージ）その③</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>編集ボタンで編集モードに切り替え、保存・キャンセルができる</li>



<li>削除ボタンでTODOが削除できる</li>



<li>Enterキーで保存、Escapeキーでキャンセル</li>



<li>編集・削除後もフィルタリングが正常に動作する</li>
</ul>
</div></div>



<h2 class="wp-block-heading">発展課題</h2>



<p>基本機能を理解したら、ぜひ以下の課題に挑戦してみてください！</p>



<ol class="wp-block-list">
<li><strong>削除確認ダイアログの実装</strong></li>



<li><strong>一括削除機能の追加</strong></li>



<li><strong>編集履歴の保存・元に戻す機能</strong></li>
</ol>



<h2 class="wp-block-heading">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">削除機能でエラーが発生する場合</dt><dd class="faq_a">
<p>onDelete関数が正しくpropsで渡されているか、filter関数の構文やIDの比較が正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">編集機能でエラーが発生する場合</dt><dd class="faq_a">
<p>編集状態やテキストの状態管理、保存・キャンセル処理が正しく実装されているか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">編集モードの切り替えが動作しない場合</dt><dd class="faq_a">
<p>条件付きレンダリングの条件式や編集状態の初期値、切り替え処理が正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">キーボードショートカットが動作しない場合</dt><dd class="faq_a">
<p>onKeyDownイベントハンドラーやキーコードの判定、イベント伝播の制御が正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">編集後のデータが正しく更新されない場合</dt><dd class="faq_a">
<p>map関数やスプレッド演算子の使い方、状態更新関数の呼び出しが正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">削除後のフィルタリングが正しく動作しない場合</dt><dd class="faq_a">
<p>削除後にフィルター条件が正しく適用されているか、フィルタリング関数や状態の更新タイミングが適切か確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">編集時のバリデーションが動作しない場合</dt><dd class="faq_a">
<p>空文字チェックやバリデーション条件、エラーメッセージの表示が正しいか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">編集キャンセル時に元の値に戻らない場合</dt><dd class="faq_a">
<p>キャンセル処理や編集状態のリセット、初期値の保存が正しいか確認してください。</p>
</dd></div>
</dl>


<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>今回は、React TODOアプリに編集・削除機能を追加し、基本的なCRUD操作を完成させました。</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>filterメソッドによる削除</li>



<li>mapメソッドによる編集</li>



<li>条件付きレンダリングによる編集モードの切り替え</li>



<li>キーボードイベントの活用</li>



<li>状態管理の応用</li>
</ul>



<p>ここまでお疲れさまでした！　次回はいよいよ「基本編」の最終回です！</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>基本編の最後では、<strong>ローカルストレージを使用してデータを永続化</strong>させます。これによりブラウザを更新してもTODOリストの内容がリセットされないようになります！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-useeffect-localstrage__15530-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-useeffect-localstrage/">【React×TODOアプリ】useEffectと副作用・ローカルストレージ【基本編：第7回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】リスト表示と条件付きレンダリング【基本編：第5回】</title>
		<link>https://kekenta-it-blog.com/react-list-display-conditional-rendering/</link>
					<comments>https://kekenta-it-blog.com/react-list-display-conditional-rendering/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 21:26:24 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15497</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-list-display-conditional-rendering__15497-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第５回 この記事では Reactでのリスト表示と条件付きレンダリングの実装方法 を学習していきます。 前回はイベントハンドリングとフォーム処理について学習しました。今回は、データ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-list-display-conditional-rendering__15497-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第５回</strong></p>



<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Reactでのリスト表示と条件付きレンダリングの実装方法</strong></p>



<p>を学習していきます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-event-handling-form-processing__15483-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-event-handling-form-processing/">【React×TODOアプリ】イベントハンドリングとフォーム処理【基本編：第4回】</a>
											</div>
				</div>
			</div>
		</div>


<p><a href="https://kekenta-it-blog.com/react-event-handling-form-processing/">前回</a>は<strong>イベントハンドリングとフォーム処理</strong>について学習しました。今回は、データを動的に表示し、条件に応じてUIを制御する方法について学んでいきましょう。</p>



<p>リスト表示と条件付きレンダリングは、Reactアプリケーションで最もよく使われる機能の一つです。これらを適切に実装することで、ユーザーにとって使いやすく、見た目も美しいアプリケーションを作ることができます。</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 is-style-check_list -list-under-dashed">
<li>map関数を使ったリスト表示の基本</li>



<li>keyプロパティの重要性と使い方</li>



<li>条件付きレンダリング（&amp;&amp;演算子、三項演算子）</li>



<li>TODOリストの表示とフィルタリング</li>



<li>完了/未完了の切り替え表示</li>
</ul>
</div></div>


<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>リスト表示と条件付きレンダリングを理解することで、データに応じて動的に変化するUIを作ることができるようになります！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1198" height="807" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01.jpg" alt="TODOアプリ（第５回：完成イメージ）その①" class="wp-image-15500" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01.jpg 1198w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-300x202.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-1024x690.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-768x517.jpg 768w" sizes="(max-width: 1198px) 100vw, 1198px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1019" height="351" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02.jpg" alt="TODOアプリ（第５回：完成イメージ）その②" class="wp-image-15501" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02.jpg 1019w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02-300x103.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02-768x265.jpg 768w" sizes="(max-width: 1019px) 100vw, 1019px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="995" height="235" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03.jpg" alt="TODOアプリ（第５回：完成イメージ）その③" class="wp-image-15502" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03.jpg 995w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03-300x71.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03-768x181.jpg 768w" sizes="(max-width: 995px) 100vw, 995px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その③</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="951" height="303" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04.jpg" alt="TODOアプリ（第５回：完成イメージ）その④" class="wp-image-15499" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04.jpg 951w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04-300x96.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04-768x245.jpg 768w" sizes="(max-width: 951px) 100vw, 951px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その④</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">前回までのコード</h2>



<p>第4回で作成したコードを確認しましょう。以下のファイル構成になっています。</p>



<h3 class="wp-block-heading">ファイル構造</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   ├── TodoList.js
│   ├── TodoHeader.js
│   └── TodoForm.js</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  // 新しいTODOを追加する関数
  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoList todos={todos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">TodoForm.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function TodoForm({ onAddTodo }) {
  const [formData, setFormData] = useState({
    text: &#39;&#39;,
    priority: &#39;medium&#39;
  });
  const [error, setError] = useState(&#39;&#39;);

  const handleChange = (event) =&gt; {
    const { name, value } = event.target;
    setFormData(prevData =&gt; ({
      ...prevData,
      [name]: value
    }));

    if (error) {
      setError(&#39;&#39;);
    }
  };

  const handleSubmit = (event) =&gt; {
    event.preventDefault();

    if (!formData.text.trim()) {
      setError(&#39;TODOの内容を入力してください&#39;);
      return;
    }

    if (formData.text.length &gt; 100) {
      setError(&#39;TODOの内容は100文字以下で入力してください&#39;);
      return;
    }

    const newTodo = {
      id: Date.now(),
      text: formData.text.trim(),
      completed: false,
      priority: formData.priority
    };

    onAddTodo(newTodo);

    setFormData({
      text: &#39;&#39;,
      priority: &#39;medium&#39;
    });
    setError(&#39;&#39;);
  };

  return (
    &lt;form onSubmit={handleSubmit} className=&quot;todo-form&quot;&gt;
      &lt;div className=&quot;form-group&quot;&gt;
        &lt;input
          type=&quot;text&quot;
          name=&quot;text&quot;
          value={formData.text}
          onChange={handleChange}
          placeholder=&quot;新しいTODOを入力してください&quot;
          className=&quot;todo-input&quot;
        /&gt;
        &lt;select
          name=&quot;priority&quot;
          value={formData.priority}
          onChange={handleChange}
          className=&quot;priority-select&quot;
        &gt;
          &lt;option value=&quot;low&quot;&gt;低優先度&lt;/option&gt;
          &lt;option value=&quot;medium&quot;&gt;中優先度&lt;/option&gt;
          &lt;option value=&quot;high&quot;&gt;高優先度&lt;/option&gt;
        &lt;/select&gt;
        &lt;button type=&quot;submit&quot; className=&quot;add-button&quot;&gt;
          追加
        &lt;/button&gt;
      &lt;/div&gt;
      {error && &lt;p className=&quot;error-message&quot;&gt;{error}&lt;/p&gt;}
    &lt;/form&gt;
  );
}

export default TodoForm;</code></pre></div>



<h3 class="wp-block-heading">App.css</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-form {
  margin-bottom: 30px;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
}

.form-group {
  display: flex;
  gap: 10px;
  align-items: center;
}

.todo-input {
  flex: 1;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
}

.todo-input:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.priority-select {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  background-color: white;
}

.add-button {
  padding: 10px 20px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.2s;
}

.add-button:hover {
  background-color: #0056b3;
}

.add-button:disabled {
  background-color: #6c757d;
  cursor: not-allowed;
}

.error-message {
  color: #dc3545;
  margin-top: 10px;
  font-size: 14px;
}</code></pre></div>


<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 class="is-style-bg_stripe">実際に手を動かす前に、まずは必要な知識について解説をしていきます。</p>



<p>Reactで配列のデータを表示するには、<code>map</code>関数を使用します。<code>map</code>関数は、配列の各要素に対して処理を行い、新しい配列を返します。</p>



<h3 class="wp-block-heading">基本的なリスト表示</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function BasicList() {
  const items = [&quot;りんご&quot;, &quot;みかん&quot;, &quot;バナナ&quot;, &quot;ぶどう&quot;];

  return (
    &lt;div&gt;
      &lt;h3&gt;果物リスト&lt;/h3&gt;
      &lt;ul&gt;
        {items.map((item, index) =&gt; (
          &lt;li key={index}&gt;{item}&lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">オブジェクトのリスト表示</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function ObjectList() {
  const users = [
    { id: 1, name: &quot;田中太郎&quot;, age: 25 },
    { id: 2, name: &quot;佐藤花子&quot;, age: 30 },
    { id: 3, name: &quot;鈴木一郎&quot;, age: 28 }
  ];

  return (
    &lt;div&gt;
      &lt;h3&gt;ユーザーリスト&lt;/h3&gt;
      &lt;ul&gt;
        {users.map(user =&gt; (
          &lt;li key={user.id}&gt;
            {user.name} ({user.age}歳)
          &lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">keyプロパティの重要性</h2>



<p>Reactでリストを表示する際、各要素に一意の<code>key</code>プロパティを指定する必要があります。これは、Reactが要素を効率的に更新するために使用されます。</p>



<h3 class="wp-block-heading">keyプロパティの基本</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function KeyExample() {
  const [items, setItems] = useState([
    { id: 1, text: &quot;アイテム1&quot; },
    { id: 2, text: &quot;アイテム2&quot; },
    { id: 3, text: &quot;アイテム3&quot; }
  ]);

  const addItem = () =&gt; {
    const newItem = {
      id: Date.now(),
      text: `アイテム${items.length + 1}`
    };
    setItems(prevItems =&gt; [...prevItems, newItem]);
  };

  return (
    &lt;div&gt;
      &lt;button onClick={addItem}&gt;アイテムを追加&lt;/button&gt;
      &lt;ul&gt;
        {items.map(item =&gt; (
          &lt;li key={item.id}&gt;{item.text}&lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">keyプロパティの注意点</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// ❌ 避けるべき書き方（indexをkeyとして使用）
function BadKeyExample() {
  const items = [&quot;りんご&quot;, &quot;みかん&quot;, &quot;バナナ&quot;];

  return (
    &lt;ul&gt;
      {items.map((item, index) =&gt; (
        &lt;li key={index}&gt;{item}&lt;/li&gt; // 配列の順序が変わる可能性がある場合は危険
      ))}
    &lt;/ul&gt;
  );
}

// ✅ 推奨される書き方（一意のIDを使用）
function GoodKeyExample() {
  const items = [
    { id: 1, name: &quot;りんご&quot; },
    { id: 2, name: &quot;みかん&quot; },
    { id: 3, name: &quot;バナナ&quot; }
  ];

  return (
    &lt;ul&gt;
      {items.map(item =&gt; (
        &lt;li key={item.id}&gt;{item.name}&lt;/li&gt;
      ))}
    &lt;/ul&gt;
  );
}</code></pre></div>


<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>条件付きレンダリングは、特定の条件に基づいて異なるコンテンツを表示する機能です。</p>



<h3 class="wp-block-heading">基本的な条件付きレンダリング</h3>



<h4 class="wp-block-heading">1. &amp;&amp;演算子を使用</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function ConditionalRendering() {
  const [isLoggedIn, setIsLoggedIn] = useState(false);
  const [userName, setUserName] = useState(&quot;&quot;);

  return (
    &lt;div&gt;
      {isLoggedIn && (
        &lt;div&gt;
          &lt;h2&gt;ようこそ、{userName}さん！&lt;/h2&gt;
          &lt;button onClick={() =&gt; setIsLoggedIn(false)}&gt;
            ログアウト
          &lt;/button&gt;
        &lt;/div&gt;
      )}

      {!isLoggedIn && (
        &lt;div&gt;
          &lt;h2&gt;ログインしてください&lt;/h2&gt;
          &lt;input
            type=&quot;text&quot;
            placeholder=&quot;ユーザー名&quot;
            value={userName}
            onChange={(e) =&gt; setUserName(e.target.value)}
          /&gt;
          &lt;button onClick={() =&gt; setIsLoggedIn(true)}&gt;
            ログイン
          &lt;/button&gt;
        &lt;/div&gt;
      )}
    &lt;/div&gt;
  );
}</code></pre></div>



<h4 class="wp-block-heading">2. 三項演算子を使用</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function TernaryExample() {
  const [isLoading, setIsLoading] = useState(true);
  const [data, setData] = useState(null);

  return (
    &lt;div&gt;
      {isLoading ? (
        &lt;div&gt;読み込み中...&lt;/div&gt;
      ) : (
        &lt;div&gt;
          &lt;h3&gt;データが読み込まれました&lt;/h3&gt;
          &lt;p&gt;{data}&lt;/p&gt;
        &lt;/div&gt;
      )}
    &lt;/div&gt;
  );
}</code></pre></div>



<h4 class="wp-block-heading">3. 複数の条件分岐</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function MultipleConditions() {
  const [status, setStatus] = useState(&quot;loading&quot;);

  const renderContent = () =&gt; {
    switch (status) {
      case &quot;loading&quot;:
        return &lt;div&gt;読み込み中...&lt;/div&gt;;
      case &quot;success&quot;:
        return &lt;div&gt;成功しました！&lt;/div&gt;;
      case &quot;error&quot;:
        return &lt;div&gt;エラーが発生しました&lt;/div&gt;;
      default:
        return &lt;div&gt;不明な状態です&lt;/div&gt;;
    }
  };

  return (
    &lt;div&gt;
      &lt;div&gt;現在の状態: {status}&lt;/div&gt;
      {renderContent()}
      &lt;button onClick={() =&gt; setStatus(&quot;success&quot;)}&gt;
        成功にする
      &lt;/button&gt;
      &lt;button onClick={() =&gt; setStatus(&quot;error&quot;)}&gt;
        エラーにする
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">リスト表示と条件付きレンダリングの組み合わせ</h2>



<p>実際のアプリケーションでは、リスト表示と条件付きレンダリングを組み合わせて使用することが多いです。</p>



<h3 class="wp-block-heading">フィルタリング機能の実装</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function FilteredList() {
  const [filter, setFilter] = useState(&quot;all&quot;);
  const [items, setItems] = useState([
    { id: 1, text: &quot;買い物に行く&quot;, completed: false },
    { id: 2, text: &quot;本を読む&quot;, completed: true },
    { id: 3, text: &quot;運動する&quot;, completed: false },
    { id: 4, text: &quot;料理を作る&quot;, completed: true }
  ]);

  const filteredItems = items.filter(item =&gt; {
    if (filter === &quot;all&quot;) return true;
    if (filter === &quot;completed&quot;) return item.completed;
    if (filter === &quot;pending&quot;) return !item.completed;
    return true;
  });

  return (
    &lt;div&gt;
      &lt;div&gt;
        &lt;button onClick={() =&gt; setFilter(&quot;all&quot;)}&gt;
          すべて
        &lt;/button&gt;
        &lt;button onClick={() =&gt; setFilter(&quot;completed&quot;)}&gt;
          完了済み
        &lt;/button&gt;
        &lt;button onClick={() =&gt; setFilter(&quot;pending&quot;)}&gt;
          未完了
        &lt;/button&gt;
      &lt;/div&gt;

      &lt;ul&gt;
        {filteredItems.map(item =&gt; (
          &lt;li key={item.id}&gt;
            &lt;span style={{ 
              textDecoration: item.completed ? &#39;line-through&#39; : &#39;none&#39; 
            }}&gt;
              {item.text}
            &lt;/span&gt;
            {item.completed && &lt;span&gt; ✓&lt;/span&gt;}
          &lt;/li&gt;
        ))}
      &lt;/ul&gt;

      {filteredItems.length === 0 && (
        &lt;p&gt;該当するアイテムがありません&lt;/p&gt;
      )}
    &lt;/div&gt;
  );
}</code></pre></div>


<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 class="is-style-bg_stripe">ここからは実際に手を動かして、TODOアプリに<strong>フィルタリング機能と条件付きレンダリング</strong>を追加していきましょう。</p>



<h3 class="wp-block-heading">1. TodoFilterコンポーネントの作成</h3>



<p><code>src/TodoFilter.js</code>ファイルを新規作成し、以下のコードを記述してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoFilter({ filter, onFilterChange }) {
  return (
    &lt;div className=&quot;todo-filter&quot;&gt;
      &lt;button
        className={`filter-button ${filter === &#39;all&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;all&#39;)}
      &gt;
        すべて
      &lt;/button&gt;
      &lt;button
        className={`filter-button ${filter === &#39;pending&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;pending&#39;)}
      &gt;
        未完了
      &lt;/button&gt;
      &lt;button
        className={`filter-button ${filter === &#39;completed&#39; ? &#39;active&#39; : &#39;&#39;}`}
        onClick={() =&gt; onFilterChange(&#39;completed&#39;)}
      &gt;
        完了済み
      &lt;/button&gt;
    &lt;/div&gt;
  );
}

export default TodoFilter;</code></pre></div>



<h3 class="wp-block-heading">2. App.jsの修正</h3>



<p>既存の<code>src/App.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;
import TodoFilter from &#39;./TodoFilter&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);

  const [filter, setFilter] = useState(&#39;all&#39;);

  // フィルタリングされたTODOリスト
  const filteredTodos = todos.filter(todo =&gt; {
    if (filter === &#39;all&#39;) return true;
    if (filter === &#39;completed&#39;) return todo.completed;
    if (filter === &#39;pending&#39;) return !todo.completed;
    return true;
  });

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  // 新しいTODOを追加する関数
  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoFilter filter={filter} onFilterChange={setFilter} /&gt;
      &lt;TodoList todos={filteredTodos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">3. TodoList.jsの修正</h3>



<p>既存の<code>src/TodoList.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle }) {
  // TODOが存在しない場合の表示
  if (todos.length === 0) {
    return (
      &lt;div className=&quot;empty-state&quot;&gt;
        &lt;p&gt;TODOがありません。新しいTODOを追加してください。&lt;/p&gt;
      &lt;/div&gt;
    );
  }

  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem 
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">4. TodoItem.jsの修正</h3>



<p>既存の<code>src/TodoItem.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        onChange={() =&gt; onToggle(id)}
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
      {completed && (
        &lt;span className=&quot;completed-badge&quot;&gt;完了&lt;/span&gt;
      )}
      {!completed && (
        &lt;span className=&quot;pending-badge&quot;&gt;未完了&lt;/span&gt;
      )}
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">5. スタイルの追加</h3>



<p>既存の<code>src/App.css</code>に以下のスタイルを追加してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-filter {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
}

.filter-button {
  padding: 8px 16px;
  border: 1px solid #ddd;
  background-color: white;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
}

.filter-button:hover {
  background-color: #f8f9fa;
}

.filter-button.active {
  background-color: #007bff;
  color: white;
  border-color: #007bff;
}

.empty-state {
  text-align: center;
  padding: 40px;
  color: #666;
  font-style: italic;
}

.completed-badge {
  background-color: #28a745;
  color: white;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  margin-left: 10px;
}

.pending-badge {
  background-color: #ffc107;
  color: #212529;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  margin-left: 10px;
}</code></pre></div>



<h2 class="wp-block-heading">動作確認</h2>



<p>実装が完了したら、開発サーバーが起動している状態でブラウザを確認してください。以下の機能が動作することを確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1198" height="807" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01.jpg" alt="TODOアプリ（第５回：完成イメージ）その①" class="wp-image-15500" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01.jpg 1198w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-300x202.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-1024x690.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_01-768x517.jpg 768w" sizes="(max-width: 1198px) 100vw, 1198px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1019" height="351" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02.jpg" alt="TODOアプリ（第５回：完成イメージ）その②" class="wp-image-15501" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02.jpg 1019w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02-300x103.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_02-768x265.jpg 768w" sizes="(max-width: 1019px) 100vw, 1019px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="995" height="235" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03.jpg" alt="TODOアプリ（第５回：完成イメージ）その③" class="wp-image-15502" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03.jpg 995w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03-300x71.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_03-768x181.jpg 768w" sizes="(max-width: 995px) 100vw, 995px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その③</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="951" height="303" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04.jpg" alt="TODOアプリ（第５回：完成イメージ）その④" class="wp-image-15499" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04.jpg 951w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04-300x96.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_05_04-768x245.jpg 768w" sizes="(max-width: 951px) 100vw, 951px" /><figcaption class="wp-element-caption">TODOアプリ（第５回：完成イメージ）その④</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>フィルターボタンでTODOリストを絞り込み表示</li>



<li>完了/未完了のバッジ表示</li>



<li>TODOが存在しない場合のメッセージ表示</li>



<li>アクティブなフィルターボタンのハイライト表示</li>
</ul>
</div></div>


<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">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">map関数でエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>配列が正しく定義されているか</li>



<li>map関数の構文が正しいか</li>



<li>配列の要素が存在するか（空配列の場合は条件分岐を追加）</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">keyプロパティの警告が表示される場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>各要素に一意のkeyプロパティが設定されているか</li>



<li>keyの値が安定しているか（配列のインデックスは避ける）</li>



<li>keyの値が重複していないか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">条件付きレンダリングが動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>条件式が正しく記述されているか</li>



<li>条件の値が期待する型になっているか</li>



<li>条件に応じた要素が正しく返されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">フィルタリングが動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>フィルター条件が正しく設定されているか</li>



<li>filter関数の構文が正しいか</li>



<li>フィルター状態が正しく更新されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">空の状態表示が動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>配列の長さチェックが正しく記述されているか</li>



<li>空の状態用のコンポーネントが正しく定義されているか</li>



<li>条件分岐の順序が適切か</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">バッジやスタイルが表示されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>CSSクラス名が正しく記述されているか</li>



<li>条件付きレンダリングの構文が正しいか</li>



<li>CSSファイルが正しくimportされているか</li>
</ol>
</dd></div>
</dl>



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



<p>今回は、Reactでのリスト表示と条件付きレンダリングについて学習しました。</p>



<p><code>map</code>関数を使ったリスト表示により、データに応じて動的にUIを生成することができるようになりました。また、<code>key</code>プロパティの重要性を理解し、効率的なリスト更新の方法を学びました。</p>



<p>条件付きレンダリングにより、ユーザーの操作やデータの状態に応じて適切なUIを表示することができるようになりました。</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/11/kekenta-icon-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/11/kekenta-icon-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>次回は、TODOの編集と削除機能について学習していきます。CRUD操作の実装を通じて、より実践的なアプリケーション開発を体験していきましょう！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-edit-delete-crud__15510-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-edit-delete-crud/">【React×TODOアプリ】編集・削除機能の実装【基本編：第6回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-list-display-conditional-rendering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】イベントハンドリングとフォーム処理【基本編：第4回】</title>
		<link>https://kekenta-it-blog.com/react-event-handling-form-processing/</link>
					<comments>https://kekenta-it-blog.com/react-event-handling-form-processing/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 11:56:56 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15483</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-event-handling-form-processing__15483-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第４回 この記事では Reactでのイベントハンドリングとフォーム処理の実装方法 を学習していきます。 前回はuseStateを使った状態管理について学習しました。今回は、ユーザ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-event-handling-form-processing__15483-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第４回</strong></p>



<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Reactでのイベントハンドリングとフォーム処理の実装方法</strong></p>



<p>を学習していきます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-state-management-usestate__15448-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-state-management-usestate/">【React×TODOアプリ】状態管理の基礎 &#8211; useState【基本編：第3回】</a>
											</div>
				</div>
			</div>
		</div>


<p><a href="https://kekenta-it-blog.com/react-state-management-usestate/">前回</a>は<strong>useStateを使った状態管理</strong>について学習しました。今回は、ユーザーの操作を受け取り、アプリケーションと対話できるようにするためのイベントハンドリングとフォーム処理について学んでいきましょう。</p>



<p>ユーザーがボタンをクリックしたり、フォームに入力したりしたときの処理を適切に実装することで、より使いやすいアプリケーションを作ることができます。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>イベントハンドラーの書き方と基本概念</li>



<li>フォームの制御（制御されたコンポーネント）</li>



<li>入力値の検証とバリデーション</li>



<li>TODO作成フォームの実装</li>



<li>エラーハンドリングの基礎</li>
</ul>
</div></div>


<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>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1113" height="689" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_01.jpg" alt="TODOアプリ（第４回：完成イメージ）その①" class="wp-image-15486" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_01.jpg 1113w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_01-300x186.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_01-1024x634.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_01-768x475.jpg 768w" sizes="(max-width: 1113px) 100vw, 1113px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="959" height="230" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02.jpg" alt="TODOアプリ（第４回：完成イメージ）その②" class="wp-image-15487" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02.jpg 959w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02-300x72.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02-768x184.jpg 768w" sizes="(max-width: 959px) 100vw, 959px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="938" height="218" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03.jpg" alt="TODOアプリ（第４回：完成イメージ）その③" class="wp-image-15488" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03.jpg 938w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03-300x70.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03-768x178.jpg 768w" sizes="(max-width: 938px) 100vw, 938px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その③</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">前回までのコード</h2>



<p>第3回で作成したコードを確認しましょう。以下のファイル構成になっています。</p>



<h3 class="wp-block-heading">ファイル構造</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   ├── TodoList.js
│   └── TodoHeader.js</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList todos={todos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">TodoList.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle }) {
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem 
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">TodoItem.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        onChange={() =&gt; onToggle(id)}
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>


<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 class="is-style-bg_stripe">実際に手を動かす前に、まずは必要な知識について解説をしていきます。</p>



<p>Reactでのイベントハンドリングは、HTMLのイベント処理と似ていますが、いくつかの重要な違いがあります。</p>



<h3 class="wp-block-heading">基本的なイベントハンドラー</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function EventExample() {
  const [count, setCount] = useState(0);

  // クリックイベントのハンドラー
  const handleClick = () =&gt; {
    setCount(count + 1);
  };

  // マウスオーバーイベントのハンドラー
  const handleMouseOver = () =&gt; {
    console.log(&#39;マウスが上に来ました&#39;);
  };

  return (
    &lt;div&gt;
      &lt;p&gt;カウント: {count}&lt;/p&gt;
      &lt;button 
        onClick={handleClick}
        onMouseOver={handleMouseOver}
      &gt;
        クリックしてください
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">イベントオブジェクトの使用</h3>



<p>イベントハンドラーは、イベントオブジェクトを引数として受け取ることができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function EventObjectExample() {
  const handleClick = (event) =&gt; {
    console.log(&#39;クリックされた要素:&#39;, event.target);
    console.log(&#39;クリックされた位置:&#39;, event.clientX, event.clientY);
  };

  const handleKeyPress = (event) =&gt; {
    if (event.key === &#39;Enter&#39;) {
      console.log(&#39;Enterキーが押されました&#39;);
    }
  };

  return (
    &lt;div&gt;
      &lt;button onClick={handleClick}&gt;
        クリックしてイベント情報を確認
      &lt;/button&gt;
      &lt;input 
        type=&quot;text&quot; 
        onKeyPress={handleKeyPress}
        placeholder=&quot;Enterキーを押してください&quot;
      /&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">イベントの伝播と停止</h3>



<p>Reactでは、イベントの伝播（バブリング）を制御することができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function EventPropagationExample() {
  const handleParentClick = () =&gt; {
    console.log(&#39;親要素がクリックされました&#39;);
  };

  const handleChildClick = (event) =&gt; {
    console.log(&#39;子要素がクリックされました&#39;);
    event.stopPropagation(); // イベントの伝播を停止
  };

  return (
    &lt;div 
      onClick={handleParentClick}
      style={{ padding: &#39;20px&#39;, border: &#39;1px solid black&#39; }}
    &gt;
      親要素
      &lt;button onClick={handleChildClick}&gt;
        子要素（クリックしても親に伝播しません）
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">フォームの制御（制御されたコンポーネント）</h2>



<p>Reactでは、フォームの値を状態で管理することで、入力値を完全に制御できます。これを「制御されたコンポーネント」と呼びます。</p>



<h3 class="wp-block-heading">基本的な制御されたコンポーネント</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function ControlledForm() {
  const [inputValue, setInputValue] = useState(&#39;&#39;);

  const handleChange = (event) =&gt; {
    setInputValue(event.target.value);
  };

  const handleSubmit = (event) =&gt; {
    event.preventDefault(); // フォームのデフォルト動作を防ぐ
    console.log(&#39;送信された値:&#39;, inputValue);
    setInputValue(&#39;&#39;); // 送信後にフォームをクリア
  };

  return (
    &lt;form onSubmit={handleSubmit}&gt;
      &lt;input
        type=&quot;text&quot;
        value={inputValue}
        onChange={handleChange}
        placeholder=&quot;何か入力してください&quot;
      /&gt;
      &lt;button type=&quot;submit&quot;&gt;送信&lt;/button&gt;
    &lt;/form&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">複数の入力フィールドの管理</h3>



<p>複数の入力フィールドがある場合は、オブジェクトで状態を管理します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function MultiFieldForm() {
  const [formData, setFormData] = useState({
    name: &#39;&#39;,
    email: &#39;&#39;,
    message: &#39;&#39;
  });

  const handleChange = (event) =&gt; {
    const { name, value } = event.target;
    setFormData(prevData =&gt; ({
      ...prevData,
      [name]: value
    }));
  };

  const handleSubmit = (event) =&gt; {
    event.preventDefault();
    console.log(&#39;送信されたデータ:&#39;, formData);
  };

  return (
    &lt;form onSubmit={handleSubmit}&gt;
      &lt;div&gt;
        &lt;label htmlFor=&quot;name&quot;&gt;名前:&lt;/label&gt;
        &lt;input
          type=&quot;text&quot;
          id=&quot;name&quot;
          name=&quot;name&quot;
          value={formData.name}
          onChange={handleChange}
        /&gt;
      &lt;/div&gt;

      &lt;div&gt;
        &lt;label htmlFor=&quot;email&quot;&gt;メール:&lt;/label&gt;
        &lt;input
          type=&quot;email&quot;
          id=&quot;email&quot;
          name=&quot;email&quot;
          value={formData.email}
          onChange={handleChange}
        /&gt;
      &lt;/div&gt;

      &lt;div&gt;
        &lt;label htmlFor=&quot;message&quot;&gt;メッセージ:&lt;/label&gt;
        &lt;textarea
          id=&quot;message&quot;
          name=&quot;message&quot;
          value={formData.message}
          onChange={handleChange}
        /&gt;
      &lt;/div&gt;

      &lt;button type=&quot;submit&quot;&gt;送信&lt;/button&gt;
    &lt;/form&gt;
  );
}</code></pre></div>


<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>ユーザーの入力値を検証することで、より安全で使いやすいアプリケーションを作ることができます。</p>



<h3 class="wp-block-heading">基本的なバリデーション</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function ValidationExample() {
  const [inputValue, setInputValue] = useState(&#39;&#39;);
  const [error, setError] = useState(&#39;&#39;);

  const handleChange = (event) =&gt; {
    const value = event.target.value;
    setInputValue(value);

    // バリデーション
    if (value.length &lt; 3) {
      setError(&#39;3文字以上入力してください&#39;);
    } else if (value.length &gt; 20) {
      setError(&#39;20文字以下で入力してください&#39;);
    } else {
      setError(&#39;&#39;);
    }
  };

  const handleSubmit = (event) =&gt; {
    event.preventDefault();
    if (error) {
      alert(&#39;入力内容にエラーがあります&#39;);
      return;
    }
    console.log(&#39;送信:&#39;, inputValue);
  };

  return (
    &lt;form onSubmit={handleSubmit}&gt;
      &lt;input
        type=&quot;text&quot;
        value={inputValue}
        onChange={handleChange}
        placeholder=&quot;3-20文字で入力&quot;
      /&gt;
      {error && &lt;p style={{ color: &#39;red&#39; }}&gt;{error}&lt;/p&gt;}
      &lt;button type=&quot;submit&quot; disabled={!!error}&gt;
        送信
      &lt;/button&gt;
    &lt;/form&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">リアルタイムバリデーション</h3>



<p>入力中にリアルタイムでバリデーションを行う例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function RealTimeValidation() {
  const [email, setEmail] = useState(&#39;&#39;);
  const [emailError, setEmailError] = useState(&#39;&#39;);

  const validateEmail = (email) =&gt; {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
  };

  const handleEmailChange = (event) =&gt; {
    const value = event.target.value;
    setEmail(value);

    if (value && !validateEmail(value)) {
      setEmailError(&#39;有効なメールアドレスを入力してください&#39;);
    } else {
      setEmailError(&#39;&#39;);
    }
  };

  return (
    &lt;div&gt;
      &lt;input
        type=&quot;email&quot;
        value={email}
        onChange={handleEmailChange}
        placeholder=&quot;メールアドレスを入力&quot;
      /&gt;
      {emailError && &lt;p style={{ color: &#39;red&#39; }}&gt;{emailError}&lt;/p&gt;}
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">実装手順</h2>



<p class="is-style-bg_stripe">ここからは実際に手を動かして、TODOアプリに<strong>フォーム機能</strong>を追加していきましょう。</p>



<h3 class="wp-block-heading">1. TodoFormコンポーネントの作成</h3>



<p><code>src/TodoForm.js</code>ファイルを新規作成し、以下のコードを記述してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function TodoForm({ onAddTodo }) {
  const [formData, setFormData] = useState({
    text: &#39;&#39;,
    priority: &#39;medium&#39;
  });
  const [error, setError] = useState(&#39;&#39;);

  const handleChange = (event) =&gt; {
    const { name, value } = event.target;
    setFormData(prevData =&gt; ({
      ...prevData,
      [name]: value
    }));

    // エラーをクリア
    if (error) {
      setError(&#39;&#39;);
    }
  };

  const handleSubmit = (event) =&gt; {
    event.preventDefault();

    // バリデーション
    if (!formData.text.trim()) {
      setError(&#39;TODOの内容を入力してください&#39;);
      return;
    }

    if (formData.text.length &gt; 100) {
      setError(&#39;TODOの内容は100文字以下で入力してください&#39;);
      return;
    }

    // 新しいTODOを作成
    const newTodo = {
      id: Date.now(),
      text: formData.text.trim(),
      completed: false,
      priority: formData.priority
    };

    // 親コンポーネントに新しいTODOを渡す
    onAddTodo(newTodo);

    // フォームをリセット
    setFormData({
      text: &#39;&#39;,
      priority: &#39;medium&#39;
    });
    setError(&#39;&#39;);
  };

  return (
    &lt;form onSubmit={handleSubmit} className=&quot;todo-form&quot;&gt;
      &lt;div className=&quot;form-group&quot;&gt;
        &lt;input
          type=&quot;text&quot;
          name=&quot;text&quot;
          value={formData.text}
          onChange={handleChange}
          placeholder=&quot;新しいTODOを入力してください&quot;
          className=&quot;todo-input&quot;
        /&gt;
        &lt;select
          name=&quot;priority&quot;
          value={formData.priority}
          onChange={handleChange}
          className=&quot;priority-select&quot;
        &gt;
          &lt;option value=&quot;low&quot;&gt;低優先度&lt;/option&gt;
          &lt;option value=&quot;medium&quot;&gt;中優先度&lt;/option&gt;
          &lt;option value=&quot;high&quot;&gt;高優先度&lt;/option&gt;
        &lt;/select&gt;
        &lt;button type=&quot;submit&quot; className=&quot;add-button&quot;&gt;
          追加
        &lt;/button&gt;
      &lt;/div&gt;
      {error && &lt;p className=&quot;error-message&quot;&gt;{error}&lt;/p&gt;}
    &lt;/form&gt;
  );
}

export default TodoForm;</code></pre></div>



<h3 class="wp-block-heading">2. App.jsの修正</h3>



<p>既存の<code>src/App.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;
import TodoForm from &#39;./TodoForm&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  // 新しいTODOを追加する関数
  const addTodo = (newTodo) =&gt; {
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]);
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoForm onAddTodo={addTodo} /&gt;
      &lt;TodoList todos={todos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">3. スタイルの追加</h3>



<p>既存の<code>src/App.css</code>に以下のスタイルを追加してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-form {
  margin-bottom: 30px;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
}

.form-group {
  display: flex;
  gap: 10px;
  align-items: center;
}

.todo-input {
  flex: 1;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
}

.todo-input:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.priority-select {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  background-color: white;
}

.add-button {
  padding: 10px 20px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.2s;
}

.add-button:hover {
  background-color: #0056b3;
}

.add-button:disabled {
  background-color: #6c757d;
  cursor: not-allowed;
}

.error-message {
  color: #dc3545;
  margin-top: 10px;
  font-size: 14px;
}</code></pre></div>



<h2 class="wp-block-heading">動作確認</h2>



<p>実装が完了したら、開発サーバーが起動している状態でブラウザを確認してください。以下の機能が動作することを確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1087" height="749" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_04.jpg" alt="TODOアプリ（第４回：完成イメージ）その①" class="wp-image-15485" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_04.jpg 1087w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_04-300x207.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_04-1024x706.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_04-768x529.jpg 768w" sizes="(max-width: 1087px) 100vw, 1087px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その①</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="959" height="230" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02.jpg" alt="TODOアプリ（第４回：完成イメージ）その②" class="wp-image-15487" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02.jpg 959w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02-300x72.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_02-768x184.jpg 768w" sizes="(max-width: 959px) 100vw, 959px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その②</figcaption></figure>
</div>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="938" height="218" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03.jpg" alt="TODOアプリ（第４回：完成イメージ）その③" class="wp-image-15488" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03.jpg 938w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03-300x70.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_04_03-768x178.jpg 768w" sizes="(max-width: 938px) 100vw, 938px" /><figcaption class="wp-element-caption">TODOアプリ（第４回：完成イメージ）その③</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>新しいTODOを入力して追加できる</li>



<li>優先度を選択できる</li>



<li>入力値のバリデーションが動作する</li>



<li>エラーメッセージが表示される</li>



<li>追加後にフォームがクリアされる</li>
</ul>
</div></div>


<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">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">イベントハンドラーでエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>イベントハンドラー関数が正しく定義されているか</li>



<li>関数名が正しく記述されているか（onClick、onChangeなど）</li>



<li>関数が正しく呼び出されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">フォームの値が更新されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>value属性が正しく設定されているか</li>



<li>onChangeイベントハンドラーが正しく動作しているか</li>



<li>状態更新関数が正しく呼び出されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">フォーム送信でエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>onSubmitイベントハンドラーが正しく設定されているか</li>



<li>e.preventDefault()が呼び出されているか</li>



<li>フォームのバリデーションが正しく動作しているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">バリデーションが動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>バリデーション条件が正しく記述されているか</li>



<li>エラー状態が正しく更新されているか</li>



<li>エラーメッセージが正しく表示されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">フォームがクリアされない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>フォーム送信後に状態が正しくリセットされているか</li>



<li>入力フィールドのvalue属性が正しく更新されているか</li>



<li>フォームの初期状態が正しく設定されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">キーボードイベントが動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>onKeyDownイベントハンドラーが正しく設定されているか</li>



<li>キーコードの判定が正しく記述されているか</li>



<li>イベントの伝播が正しく制御されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">フォームのスタイルが適用されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>CSSクラス名が正しく記述されているか</li>



<li>CSSファイルが正しくimportされているか</li>



<li>スタイルの優先度が適切か</li>
</ol>
</dd></div>
</dl>


<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>今回は、Reactでのイベントハンドリングとフォーム処理について学習しました。</p>



<p>制御されたコンポーネントを使うことで、フォームの値を完全に制御し、ユーザーの入力に応じて動的にUIを更新することができるようになりました。</p>



<p>バリデーション機能を実装することで、より安全で使いやすいアプリケーションを作ることができます。</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/11/kekenta-icon-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/11/kekenta-icon-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>次回は、リスト表示と条件付きレンダリングについて学習していきます。TODOリストの表示方法を改善し、フィルタリング機能を追加していきましょう！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-list-display-conditional-rendering__15497-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-list-display-conditional-rendering/">【React×TODOアプリ】リスト表示と条件付きレンダリング【基本編：第5回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-event-handling-form-processing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】状態管理の基礎 &#8211; useState【基本編：第3回】</title>
		<link>https://kekenta-it-blog.com/react-state-management-usestate/</link>
					<comments>https://kekenta-it-blog.com/react-state-management-usestate/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 06:46:21 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15448</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-state-management-usestate__15448-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第３回 この記事では Reactでの状態管理の基礎、useStateフックの使い方 を学習していきます。 前回は、コンポーネントとJSXについて詳しく学習しました。今回は、Rea [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-state-management-usestate__15448-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第３回</strong></p>



<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Reactでの状態管理の基礎、useStateフックの使い方</strong></p>



<p>を学習していきます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-components-jsx-understanding__15432-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-components-jsx-understanding/">【React×TODOアプリ】コンポーネントとJSXの理解【基本編：第2回】</a>
											</div>
				</div>
			</div>
		</div>


<p><a href="https://kekenta-it-blog.com/react-components-jsx-understanding/">前回</a>は、<strong>コンポーネントとJSX</strong>について詳しく学習しました。今回は、Reactアプリケーションを動的にするために欠かせない状態管理について学んでいきましょう。</p>



<p>useStateは、Reactの最も基本的なフックの一つです。これを使うことで、コンポーネント内でデータを保持し、そのデータが変更されたときに自動的にUIを更新することができます。</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 is-style-check_list -list-under-dashed">
<li>useStateフックの基本概念</li>



<li>状態の更新方法と注意点</li>



<li>配列とオブジェクトの状態管理</li>



<li>TODOリストの基本構造作成</li>



<li>TODOアイテムの追加機能実装</li>
</ul>
</div></div>


<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>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1021" height="526" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01.jpg" alt="TODOアプリ（第３回：完成イメージ）" class="wp-image-15450" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01.jpg 1021w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01-300x155.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01-768x396.jpg 768w" sizes="(max-width: 1021px) 100vw, 1021px" /><figcaption class="wp-element-caption">TODOアプリ（第３回：完成イメージ）</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">前回までのコード</h2>



<p>第2回で作成したコードを確認しましょう。以下のファイル構成になっています：</p>



<h3 class="wp-block-heading">ファイル構造</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   ├── TodoList.js
│   └── TodoHeader.js</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;

function App() {
  const todos = [
    { text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ];

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList todos={todos} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">TodoList.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos }) {
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo, index) =&gt; (
        &lt;TodoItem 
          key={index}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">TodoHeader.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoHeader({ title, totalCount, completedCount }) {
  return (
    &lt;div className=&quot;todo-header&quot;&gt;
      &lt;h1&gt;{title}&lt;/h1&gt;
      &lt;div className=&quot;todo-stats&quot;&gt;
        &lt;span&gt;総数: {totalCount}&lt;/span&gt;
        &lt;span&gt;完了: {completedCount}&lt;/span&gt;
        &lt;span&gt;未完了: {totalCount - completedCount}&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  );
}

export default TodoHeader;</code></pre></div>



<h3 class="wp-block-heading">TodoItem.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ text, completed, priority = &quot;medium&quot; }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        readOnly 
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">App.css</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-header {
  margin-bottom: 30px;
}

.todo-stats {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 10px;
  font-size: 14px;
  color: #666;
}

.todo-stats span {
  padding: 5px 10px;
  background-color: #f5f5f5;
  border-radius: 15px;
}

.priority-high {
  border-left: 4px solid #ff4757;
}

.priority-medium {
  border-left: 4px solid #ffa502;
}

.priority-low {
  border-left: 4px solid #2ed573;
}</code></pre></div>


<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">useStateフックの基本概念</h2>



<p class="is-style-bg_stripe">実際に手を動かす前に、まずは必要な知識について解説をしていきます。</p>



<p><strong>useState</strong>は、<strong>Reactコンポーネントで状態（state）を管理するためのフック</strong>です。状態とは、コンポーネントが保持するデータで、このデータが変更されると自動的にコンポーネントが再レンダリングされます。</p>



<h3 class="wp-block-heading">useStateの基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;

function Counter() {
  const [count, setCount] = useState(0);

  return (
    &lt;div&gt;
      &lt;p&gt;カウント: {count}&lt;/p&gt;
      &lt;button onClick={() =&gt; setCount(count + 1)}&gt;
        増やす
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">useStateの仕組み</h3>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ol class="wp-block-list -list-under-dashed is-style-num_circle">
<li><strong>初期値の設定</strong>: <code>useState(0)</code>で初期値を0に設定</li>



<li><strong>状態とセッター関数</strong>: <code>[count, setCount]</code>で分割代入</li>
</ol>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list">
<li><code>count</code>: 現在の状態値</li>



<li><code>setCount</code>: 状態を更新する関数</li>
</ul>
</div></div>
</div></div>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ol class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>状態の更新</strong>: <code>setCount(count + 1)</code>で状態を更新</li>



<li><strong>自動再レンダリング</strong>: 状態が更新されると自動的にコンポーネントが再描画</li>
</ol>
</div></div>



<h2 class="wp-block-heading">状態の更新方法と注意点</h2>



<h3 class="wp-block-heading">基本的な状態更新</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function Example() {
  const [name, setName] = useState(&quot;React&quot;);

  const handleClick = () =&gt; {
    setName(&quot;JavaScript&quot;); // 直接値を設定
  };

  return (
    &lt;div&gt;
      &lt;p&gt;名前: {name}&lt;/p&gt;
      &lt;button onClick={handleClick}&gt;名前を変更&lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">関数を使った状態更新</h3>



<p class="is-style-icon_pen">前の状態をもとに新しい状態を計算する場合は、関数を使うことができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function Counter() {
  const [count, setCount] = useState(0);

  const increment = () =&gt; {
    setCount(prevCount =&gt; prevCount + 1); // 前の状態を基に更新
  };

  const decrement = () =&gt; {
    setCount(prevCount =&gt; prevCount - 1);
  };

  return (
    &lt;div&gt;
      &lt;p&gt;カウント: {count}&lt;/p&gt;
      &lt;button onClick={increment}&gt;+1&lt;/button&gt;
      &lt;button onClick={decrement}&gt;-1&lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">重要な注意点</h3>



<p class="is-style-icon_info">状態の更新は非同期で行われるため、以下のような書き方は避けるべきです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// ❌ 避けるべき書き方
function BadExample() {
  const [count, setCount] = useState(0);

  const handleClick = () =&gt; {
    setCount(count + 1);
    setCount(count + 1); // 前の更新が反映される前に実行される
  };
}

// ✅ 正しい書き方
function GoodExample() {
  const [count, setCount] = useState(0);

  const handleClick = () =&gt; {
    setCount(prevCount =&gt; prevCount + 1);
    setCount(prevCount =&gt; prevCount + 1); // 前の状態を基に更新
  };
}</code></pre></div>


<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>



<h3 class="wp-block-heading">配列の状態管理</h3>



<p class="is-style-icon_pen">配列の状態を更新する際は、元の配列を変更せずに新しい配列を作成する必要があります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function TodoList() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true }
  ]);

  // 新しいTODOを追加
  const addTodo = (text) =&gt; {
    const newTodo = {
      id: Date.now(), // 簡単なID生成
      text: text,
      completed: false
    };
    setTodos(prevTodos =&gt; [...prevTodos, newTodo]); // スプレッド構文で新しい配列を作成
  };

  // TODOを削除
  const deleteTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; prevTodos.filter(todo =&gt; todo.id !== id));
  };

  // TODOの完了状態を切り替え
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  return (
    &lt;div&gt;
      {todos.map(todo =&gt; (
        &lt;div key={todo.id}&gt;
          &lt;input 
            type=&quot;checkbox&quot; 
            checked={todo.completed}
            onChange={() =&gt; toggleTodo(todo.id)}
          /&gt;
          &lt;span style={{ 
            textDecoration: todo.completed ? &#39;line-through&#39; : &#39;none&#39; 
          }}&gt;
            {todo.text}
          &lt;/span&gt;
          &lt;button onClick={() =&gt; deleteTodo(todo.id)}&gt;削除&lt;/button&gt;
        &lt;/div&gt;
      ))}
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">オブジェクトの状態管理</h3>



<p class="is-style-icon_pen">オブジェクトの状態を更新する際も、元のオブジェクトを変更せずに新しいオブジェクトを作成します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function UserProfile() {
  const [user, setUser] = useState({
    name: &quot;田中太郎&quot;,
    age: 25,
    email: &quot;tanaka@example.com&quot;
  });

  // 名前を更新
  const updateName = (newName) =&gt; {
    setUser(prevUser =&gt; ({
      ...prevUser, // 既存のプロパティをコピー
      name: newName // 名前のみ更新
    }));
  };

  // 年齢を更新
  const updateAge = (newAge) =&gt; {
    setUser(prevUser =&gt; ({
      ...prevUser,
      age: newAge
    }));
  };

  return (
    &lt;div&gt;
      &lt;p&gt;名前: {user.name}&lt;/p&gt;
      &lt;p&gt;年齢: {user.age}&lt;/p&gt;
      &lt;p&gt;メール: {user.email}&lt;/p&gt;
      &lt;button onClick={() =&gt; updateName(&quot;佐藤花子&quot;)}&gt;
        名前を変更
      &lt;/button&gt;
      &lt;button onClick={() =&gt; updateAge(30)}&gt;
        年齢を変更
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">【実践】useStateを使った動的なTODOアプリ作成</h2>



<p class="is-style-bg_stripe">ここからは実際に手を動かして、useStateを使った動的なTODOアプリケーションを作成していきましょう。</p>



<h3 class="wp-block-heading">1. App.jsの修正</h3>



<p>既存の<code>src/App.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;

function App() {
  const [todos, setTodos] = useState([
    { id: 1, text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { id: 2, text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { id: 3, text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { id: 4, text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ]);

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  // TODOの完了状態を切り替える関数
  const toggleTodo = (id) =&gt; {
    setTodos(prevTodos =&gt; 
      prevTodos.map(todo =&gt; 
        todo.id === id 
          ? { ...todo, completed: !todo.completed }
          : todo
      )
    );
  };

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList todos={todos} onToggle={toggleTodo} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">2. TodoList.jsの修正</h3>



<p>既存の<code>src/TodoList.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos, onToggle }) {
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo) =&gt; (
        &lt;TodoItem 
          key={todo.id}
          id={todo.id}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
          onToggle={onToggle}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">3. TodoItem.jsの修正</h3>



<p>既存の<code>src/TodoItem.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ id, text, completed, priority = &quot;medium&quot;, onToggle }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        onChange={() =&gt; onToggle(id)}
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>


<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>実装が完了したら、開発サーバーが起動している状態でブラウザを確認してください。以下の機能が動作することを確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1021" height="526" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01.jpg" alt="TODOアプリ（第３回：完成イメージ）" class="wp-image-15450" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01.jpg 1021w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01-300x155.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_03_01-768x396.jpg 768w" sizes="(max-width: 1021px) 100vw, 1021px" /><figcaption class="wp-element-caption">TODOアプリ（第３回：完成イメージ）</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>チェックボックスをクリックすると、TODOの完了状態が切り替わる</li>



<li>完了したTODOには取り消し線が表示される</li>



<li>統計情報（完了数、未完了数）がリアルタイムで更新される</li>
</ul>
</div></div>



<h2 class="wp-block-heading">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">useStateでエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li><code>import { useState } from 'react'</code>が正しく記述されているか</li>



<li>useStateの構文が正しいか：<code>const [state, setState] = useState(initialValue)</code></li>



<li>コンポーネントの最上位で呼び出しているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">状態が更新されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>setState関数を正しく呼び出しているか</li>



<li>状態更新関数内で元の状態を変更していないか（イミュータブルな更新を心がける）</li>



<li>依存関係が正しく設定されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">配列の状態更新でエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>元の配列を直接変更していないか（push、pop、spliceなどは避ける）</li>



<li>新しい配列を作成しているか（map、filter、spread演算子を使用）</li>



<li>keyプロパティが正しく設定されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">オブジェクトの状態更新でエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>元のオブジェクトを直接変更していないか</li>



<li>spread演算子（<code>...</code>）を使用して新しいオブジェクトを作成しているか</li>



<li>プロパティ名が正しく記述されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">無限ループが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>状態更新関数が条件なしで呼び出されていないか</li>



<li>useEffect内で依存配列が正しく設定されているか</li>



<li>状態更新が無限に繰り返されていないか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">パフォーマンスの問題が発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>不要な再レンダリングが発生していないか</li>



<li>大きな配列やオブジェクトを直接状態として使用していないか</li>



<li>状態更新が頻繁に発生していないか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">状態の初期値が正しく設定されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>useStateの引数に正しい初期値を渡しているか</li>



<li>初期値の型が期待する型と一致しているか</li>



<li>初期値の計算が重い処理になっていないか</li>
</ol>
</dd></div>
</dl>


<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>Reactでの状態管理の基礎</strong>について学習しました。</p>



<p>useStateフックを使うことで、コンポーネント内でデータを保持し、そのデータが変更されたときに自動的にUIを更新することができるようになりました。</p>



<p>配列やオブジェクトの状態管理では、元のデータを変更せずに新しいデータを作成するという重要な原則を学びました。</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>次回は、イベントハンドリングとフォーム処理について学習していきます。ユーザーの入力を受け取り、TODOアプリに新しい機能を追加していきましょう！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-event-handling-form-processing__15483-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-event-handling-form-processing/">【React×TODOアプリ】イベントハンドリングとフォーム処理【基本編：第4回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-state-management-usestate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】コンポーネントとJSXの理解【基本編：第2回】</title>
		<link>https://kekenta-it-blog.com/react-components-jsx-understanding/</link>
					<comments>https://kekenta-it-blog.com/react-components-jsx-understanding/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 06:39:29 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15432</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-components-jsx-understanding__15432-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第２回 この記事では ReactのコンポーネントとJSX について詳しく学習していきます。 前回は、Reactの基礎知識と開発環境の構築について学習しました。今回は、Reactの [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-components-jsx-understanding__15432-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第２回</strong></p>



<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>ReactのコンポーネントとJSX</strong></p>



<p>について詳しく学習していきます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">前回の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-development-basics__15419-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-development-basics/">【React×TODOアプリ】Reactの基礎と開発環境の準備【基本編：第1回】</a>
											</div>
				</div>
			</div>
		</div>


<p><a href="https://kekenta-it-blog.com/react-todo-app-development-basics/" data-type="post" data-id="15419">前回</a>は、<strong>Reactの基礎知識と開発環境の構築</strong>について学習しました。今回は、Reactの核となるコンポーネントとJSXについて、より深く理解していきましょう。</p>



<p>コンポーネントベース開発は、Reactの最大の特徴の一つです。小さな部品を組み合わせて大きなアプリケーションを作ることで、コードの再利用性と保守性を大幅に向上させることができます。</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 is-style-check_list -list-under-dashed">
<li>コンポーネントの概念と種類（関数コンポーネント、クラスコンポーネント）</li>



<li>JSXの詳細な文法と特徴</li>



<li>Propsの受け渡し方法</li>



<li>コンポーネントの分割と再利用</li>



<li>簡単なTODOアイテムコンポーネントの作成</li>
</ul>
</div></div>


<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>

<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1021" height="526" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01.jpg" alt="TODOアプリ（第２回：完成イメージ）" class="wp-image-15437" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01.jpg 1021w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01-300x155.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01-768x396.jpg 768w" sizes="(max-width: 1021px) 100vw, 1021px" /><figcaption class="wp-element-caption">TODOアプリ（第２回：完成イメージ）</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">前回までのコード</h2>



<p>第1回で作成したコードを確認しましょう。以下のファイル構成になっています。</p>



<h3 class="wp-block-heading">ファイル構造</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── src/
│   ├── App.js
│   ├── App.css
│   ├── TodoItem.js
│   └── index.js</code></pre></div>



<h3 class="wp-block-heading">App.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="App.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function App() {
  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;h1&gt;React TODOアプリ&lt;/h1&gt;
      &lt;div className=&quot;todo-list&quot;&gt;
        &lt;TodoItem text=&quot;Reactを学ぶ&quot; completed={false} /&gt;
        &lt;TodoItem text=&quot;TODOアプリを作る&quot; completed={true} /&gt;
        &lt;TodoItem text=&quot;データベース連携&quot; completed={false} /&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">TodoItem.js</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="TodoItem.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ text, completed }) {
  return (
    &lt;div className=&quot;todo-item&quot;&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        readOnly 
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">App.css</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="App.css" data-lang="JavaScript"><code>.App {
  text-align: center;
  padding: 20px;
  max-width: 600px;
  margin: 0 auto;
}

.todo-list {
  margin-top: 20px;
}

.todo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px;
  border-bottom: 1px solid #eee;
}

.todo-item input[type=&quot;checkbox&quot;] {
  margin-right: 10px;
}

.todo-item span {
  font-size: 16px;
}</code></pre></div>


<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 class="is-style-bg_stripe">実際に手を動かす前に、まずは必要な知識について解説をしていきます。</p>



<p>Reactのコンポーネントは、UIを構成する独立した部品です。HTMLの要素を拡張したようなもので、独自のロジックとスタイルを持つことができます。</p>



<h3 class="wp-block-heading">コンポーネントの種類</h3>



<p>Reactには主に<strong>2種類</strong>のコンポーネントがあります：</p>



<h4 class="wp-block-heading">1. 関数コンポーネント（Function Component）</h4>



<p>現在のReactでは、関数コンポーネントが推奨されています。シンプルで理解しやすく、Hooksを使用して状態管理も行えます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function Welcome({ name }) {
  return &lt;h1&gt;Hello, {name}!&lt;/h1&gt;;
}</code></pre></div>



<h4 class="wp-block-heading">2. クラスコンポーネント（Class Component）</h4>



<p>こちらは従来の書き方で、現在は関数コンポーネントが主流ですが、理解しておくと良いでしょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>class Welcome extends React.Component {
  render() {
    return &lt;h1&gt;Hello, {this.props.name}!&lt;/h1&gt;;
  }
}</code></pre></div>



<h2 class="wp-block-heading">JSXの詳細な文法ルール</h2>



<p><strong>JSX</strong>は、<strong>JavaScriptの中にHTMLライクな記法を書くことができるReactの拡張構文</strong>です。</p>



<h3 class="wp-block-heading">1. 要素のネスト</h3>



<p>JSXでは、複数の要素を返す場合は、必ず1つの親要素で囲む必要があります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// ❌ エラー：複数の要素を直接返している
function App() {
  return (
    &lt;h1&gt;タイトル&lt;/h1&gt;
    &lt;p&gt;説明文&lt;/p&gt;
  );
}

// ✅ 正しい：1つの親要素で囲んでいる
function App() {
  return (
    &lt;div&gt;
      &lt;h1&gt;タイトル&lt;/h1&gt;
      &lt;p&gt;説明文&lt;/p&gt;
    &lt;/div&gt;
  );
}

// ✅ Fragmentを使用する方法（推奨）
function App() {
  return (
    &lt;&gt;
      &lt;h1&gt;タイトル&lt;/h1&gt;
      &lt;p&gt;説明文&lt;/p&gt;
    &lt;/&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">2. JavaScript式の埋め込み</h3>



<p>JSXの中では、<code>{}</code>を使ってJavaScriptの式を埋め込むことができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function App() {
  const name = &quot;React&quot;;
  const isLoggedIn = true;
  const items = [&quot;アイテム1&quot;, &quot;アイテム2&quot;, &quot;アイテム3&quot;];

  return (
    &lt;div&gt;
      &lt;h1&gt;Hello, {name}!&lt;/h1&gt;
      &lt;p&gt;{isLoggedIn ? &quot;ログイン中&quot; : &quot;ログアウト中&quot;}&lt;/p&gt;
      &lt;ul&gt;
        {items.map((item, index) =&gt; (
          &lt;li key={index}&gt;{item}&lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">3. 属性の書き方</h3>



<p>JSXでは、HTMLの属性名が少し異なります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function App() {
  const className = &quot;container&quot;;
  const style = { backgroundColor: &quot;blue&quot;, color: &quot;white&quot; };

  return (
    &lt;div 
      className={className}  // classではなくclassName
      style={style}         // オブジェクトとして渡す
      data-testid=&quot;app&quot;     // カスタム属性はそのまま
    &gt;
      コンテンツ
    &lt;/div&gt;
  );
}</code></pre></div>


<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">Propsの受け渡し</h2>



<p><strong>Props</strong>は、<strong>親コンポーネントから子コンポーネントにデータを渡すための仕組み</strong>です。</p>



<h3 class="wp-block-heading">Propsの基本</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>// 親コンポーネント
function App() {
  return (
    &lt;div&gt;
      &lt;TodoItem text=&quot;買い物に行く&quot; completed={false} priority=&quot;high&quot; /&gt;
      &lt;TodoItem text=&quot;本を読む&quot; completed={true} priority=&quot;low&quot; /&gt;
    &lt;/div&gt;
  );
}

// 子コンポーネント
function TodoItem({ text, completed, priority }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input type=&quot;checkbox&quot; checked={completed} readOnly /&gt;
      &lt;span style={{ textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">デフォルト値の設定</h3>



<p>Propsにデフォルト値を設定することで、値が渡されなかった場合の処理を書くことができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function TodoItem({ text, completed = false, priority = &quot;medium&quot; }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input type=&quot;checkbox&quot; checked={completed} readOnly /&gt;
      &lt;span style={{ textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<p class="is-style-icon_pen">style属性の指定にはjavascriptの三項演算子を利用して条件分岐しています。</p>



<h3 class="wp-block-heading">スプレッド構文の使用</h3>



<p>スプレッド構文を使用することで、オブジェクトのプロパティを展開して渡すことができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function App() {
  const todoData = {
    text: &quot;買い物に行く&quot;,
    completed: false,
    priority: &quot;high&quot;,
    createdAt: &quot;2024-01-01&quot;
  };

  return (
    &lt;div&gt;
      &lt;TodoItem {...todoData} /&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h2 class="wp-block-heading">【実践】コンポーネントの分割と再利用</h2>



<p class="is-style-bg_stripe">それでは、ここからは実際に手を動かして、新しいコンポーネントを作成していきましょう。</p>



<p>大きなコンポーネントを小さな部品に分割することで、コードの再利用性と保守性を向上させることができます。</p>



<h3 class="wp-block-heading">1. TodoListコンポーネントの作成</h3>



<p><code>src/TodoList.js</code>ファイルを新規作成し、以下のコードを記述してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="TodoList.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function TodoList({ todos }) {
  return (
    &lt;div className=&quot;todo-list&quot;&gt;
      {todos.map((todo, index) =&gt; (
        &lt;TodoItem 
          key={index}
          text={todo.text}
          completed={todo.completed}
          priority={todo.priority}
        /&gt;
      ))}
    &lt;/div&gt;
  );
}

export default TodoList;</code></pre></div>



<h3 class="wp-block-heading">2. TodoHeaderコンポーネントの作成</h3>



<p><code>src/TodoHeader.js</code>ファイルを新規作成し、以下のコードを記述してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="TodoHeader.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoHeader({ title, totalCount, completedCount }) {
  return (
    &lt;div className=&quot;todo-header&quot;&gt;
      &lt;h1&gt;{title}&lt;/h1&gt;
      &lt;div className=&quot;todo-stats&quot;&gt;
        &lt;span&gt;総数: {totalCount}&lt;/span&gt;
        &lt;span&gt;完了: {completedCount}&lt;/span&gt;
        &lt;span&gt;未完了: {totalCount - completedCount}&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  );
}

export default TodoHeader;</code></pre></div>



<h3 class="wp-block-heading">3. App.jsの修正</h3>



<p>既存の<code>src/App.js</code>を以下のように修正してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="App.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoHeader from &#39;./TodoHeader&#39;;
import TodoList from &#39;./TodoList&#39;;

function App() {
  const todos = [
    { text: &quot;Reactを学ぶ&quot;, completed: false, priority: &quot;high&quot; },
    { text: &quot;TODOアプリを作る&quot;, completed: true, priority: &quot;medium&quot; },
    { text: &quot;データベース連携&quot;, completed: false, priority: &quot;low&quot; },
    { text: &quot;デプロイする&quot;, completed: false, priority: &quot;medium&quot; }
  ];

  const completedCount = todos.filter(todo =&gt; todo.completed).length;

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;TodoHeader 
        title=&quot;React TODOアプリ&quot;
        totalCount={todos.length}
        completedCount={completedCount}
      /&gt;
      &lt;TodoList todos={todos} /&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">4. スタイルの追加</h3>



<p>既存の<code>src/App.css</code>に以下のスタイルを追加してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-lang="CSS"><code>.todo-header {
  margin-bottom: 30px;
}

.todo-stats {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 10px;
  font-size: 14px;
  color: #666;
}

.todo-stats span {
  padding: 5px 10px;
  background-color: #f5f5f5;
  border-radius: 15px;
}

.priority-high {
  border-left: 4px solid #ff4757;
}

.priority-medium {
  border-left: 4px solid #ffa502;
}

.priority-low {
  border-left: 4px solid #2ed573;
}</code></pre></div>



<h3 class="wp-block-heading">5. TodoItem.jsの更新</h3>



<p>既存の<code>src/TodoItem.js</code>を以下のように更新してください（priorityプロパティを追加）。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="TodoItem.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ text, completed, priority = &quot;medium&quot; }) {
  return (
    &lt;div className={`todo-item priority-${priority}`}&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        readOnly 
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h2 class="wp-block-heading">動作確認</h2>



<p>実装が完了したら、開発サーバーが起動している状態でブラウザを確認してください。以下のような表示が確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="1021" height="526" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01.jpg" alt="TODOアプリ（第２回：完成イメージ）" class="wp-image-15437" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01.jpg 1021w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01-300x155.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_02_01-768x396.jpg 768w" sizes="(max-width: 1021px) 100vw, 1021px" /><figcaption class="wp-element-caption">TODOアプリ（第２回：完成イメージ）</figcaption></figure>
</div>


<div class="wp-block-group has-border -border01 is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>タイトルと統計情報（総数、完了数、未完了数）</li>



<li>優先度に応じた色分けされたTODOアイテム（左端の色付きボーダー）</li>
</ul>
</div></div>


<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">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">コンポーネントが表示されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>ファイル名とimport文が一致しているか</li>



<li>export defaultが正しく記述されているか</li>



<li>ファイルパスが正しいか</li>



<li>コンポーネント名が大文字で始まっているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">Propsが正しく渡されていない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>親コンポーネントでpropsを正しく渡しているか</li>



<li>子コンポーネントでpropsを正しく受け取っているか</li>



<li>プロパティ名が一致しているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">JSXでエラーが発生する場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>すべての要素が一つの要素で囲まれているか</li>



<li>閉じタグが正しく記述されているか</li>



<li>className属性を使用しているか（classではない）</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">条件付きレンダリングが動作しない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>条件式が正しく記述されているか</li>



<li>三項演算子の構文が正しいか</li>



<li>条件に応じた要素が正しく返されているか</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">スタイルが適用されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>CSSファイルが正しくimportされているか</li>



<li>クラス名が正しく記述されているか</li>



<li>CSSの優先度（詳細度）が適切か</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">コンポーネントの分割で迷った場合</dt><dd class="faq_a">
<p>以下の原則を参考にしてください。</p>



<ol class="wp-block-list">
<li>単一責任の原則：一つのコンポーネントに一つの役割</li>



<li>再利用性：他の場所でも使えるか</li>



<li>保守性：変更しやすい構造か</li>
</ol>
</dd></div>
</dl>



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



<p>今回は、ReactのコンポーネントとJSXについて詳しく学習しました。</p>



<p>コンポーネントベース開発により、UIを小さな部品に分割して開発することで、コードの再利用性と保守性を大幅に向上させることができます。</p>



<p>JSXの詳細な文法とPropsの受け渡し方法を理解することで、より柔軟で拡張性の高いコンポーネントを作成できるようになりました。</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/11/kekenta-icon-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/11/kekenta-icon-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>次回は、Reactでの状態管理について学習していきます。useStateフックを使って、動的なTODOアプリケーションを作成していきましょう！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-state-management-usestate__15448-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-state-management-usestate/">【React×TODOアプリ】状態管理の基礎 &#8211; useState【基本編：第3回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-components-jsx-understanding/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【React×TODOアプリ】Reactの基礎と開発環境の準備【基本編：第1回】</title>
		<link>https://kekenta-it-blog.com/react-todo-app-development-basics/</link>
					<comments>https://kekenta-it-blog.com/react-todo-app-development-basics/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 06:37:55 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[TODOアプリ]]></category>
		<category><![CDATA[開発シリーズ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=15419</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-development-basics__15419-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Reactで作るTODOアプリ開発シリーズ第１回 それは早速ですが、シリーズ初投稿となる第１回では Reactの基礎知識と開発環境の構築方法 を解説します。 Reactは現在、Webアプリケーション開発で最も人気のあるJ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-development-basics__15419-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>Reactで作るTODOアプリ開発シリーズ第１回</strong></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>このシリーズでは、<strong>Reactの基礎から実践的なTODOアプリの開発まで、段階的に学習</strong>していきます。最終的には、基本編～発展編を経て、データベース連携まで行える本格的なアプリケーションを完成させることが目標です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>それは早速ですが、シリーズ初投稿となる<strong>第１回</strong>では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Reactの基礎知識と開発環境の構築方法</strong></p>



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



<p>Reactは現在、Webアプリケーション開発で最も人気のある<strong>JavaScriptライブラリ</strong>の一つです。Facebook（現Meta）が開発したこのライブラリは、コンポーネントベースの開発手法により、効率的で保守性の高いWebアプリケーションを作ることができます。</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>Reactとは何か（仮想DOM、コンポーネントベース開発）</li>



<li>Node.jsとnpmのインストール方法</li>



<li>Create React Appでのプロジェクト作成</li>



<li>開発サーバーの起動と基本操作</li>



<li>JSXの基本文法</li>



<li>初めてのコンポーネント作成</li>
</ul>
</div></div>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="946" height="465" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02.jpg" alt="TODOアプリ（第１回：完成イメージ）" class="wp-image-15421" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02.jpg 946w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02-300x147.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02-768x378.jpg 768w" sizes="(max-width: 946px) 100vw, 946px" /><figcaption class="wp-element-caption">TODOアプリ（第１回：完成イメージ）</figcaption></figure>
</div>


<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>TODOアプリ開発シリーズのまとめ記事はこちら</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">シリーズ完全ガイド</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-todo-app-series-complete-guide-summary__15557-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-todo-app-series-complete-guide-summary/">【React】初心者向けTODOアプリ開発シリーズ &#8211; 完全ガイドまとめ</a>
											</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Reactとは何か</h2>



<p>Reactは、<strong>ユーザーインターフェース（UI）を構築するためのJavaScriptライブラリ</strong>です。特に以下の特徴があります。</p>



<h3 class="wp-block-heading">仮想DOM（Virtual DOM）</h3>



<p>Reactの最大の特徴の一つが仮想DOMです。従来のWeb開発では、HTMLの要素を直接操作していましたが、Reactでは仮想的なDOMツリーを作成し、実際のDOMとの差分のみを更新します。</p>



<p>これにより、パフォーマンスが大幅に向上し、複雑なUIでもスムーズに動作するアプリケーションを作ることができます。</p>



<h3 class="wp-block-heading">コンポーネントベース開発</h3>



<p>Reactでは、UIを小さな部品（コンポーネント）に分割して開発します。例えば、TODOアプリであれば、</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>TodoList（TODOリスト全体）</li>



<li>TodoItem（個別のTODOアイテム）</li>



<li>TodoForm（TODO追加フォーム）</li>
</ul>



<p class="is-style-icon_good">このように分割することで、コードの再利用性が高まり、保守性も向上します。</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 class="is-style-bg_stripe">それではここからは実際に手を動かしていきましょう。まずはReactでTODOアプリ開発を行うための「開発環境の準備」からです。</p>



<h3 class="wp-block-heading">Node.jsのインストール</h3>



<p>Reactの開発には、<strong>Node.js</strong>が必要です。Node.jsは、JavaScriptをサーバーサイドで実行できるようにするプラットフォームです。</p>



<div class="swell-block-step is-style-small" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m"><a href="https://nodejs.org/" target="_blank" rel="noreferrer noopener nofollow">Node.js公式サイト</a>にアクセス</div><div class="swell-block-step__body">

</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m">LTS版（推奨版）をダウンロード</div><div class="swell-block-step__body">

</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m">インストーラーを実行し、指示に従ってインストール</div><div class="swell-block-step__body">

</div></div>
</div>



<p>インストールが完了したら、ターミナル（コマンドプロンプト）を開いて、以下のコマンドを実行して確認します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>node --version
npm --version</code></pre></div>



<p class="is-style-icon_good">バージョン番号が表示されれば、インストールは成功です。</p>



<h3 class="wp-block-heading">Create React Appの使用</h3>



<p>Reactプロジェクトを作成する最も簡単な方法が、<strong>Create React App</strong>を使用することです。これは、Facebookが提供する公式のツールで、Reactアプリケーションの開発に必要な設定がすべて含まれています。</p>



<p>今回は、デスクトップ上でターミナルを開き、以下のコマンドを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>npx create-react-app todo-app</code></pre></div>



<p>このコマンドにより、以下のファイル構造が自動的に作成されます。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><strong>コマンドで自動作成されるファイル構造</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>todo-app/
├── node_modules/
├── public/
│   ├── index.html
│   └── favicon.ico
├── src/
│   ├── App.js
│   ├── App.css
│   ├── index.js
│   └── index.css
├── package.json
└── README.md</code></pre></div>



<h3 class="wp-block-heading">開発サーバーの起動</h3>



<p>次に、以下のコマンドでプロジェクトディレクトリに移動します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd todo-app</code></pre></div>



<p>続いて、以下のコマンドで開発サーバーを起動します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>npm start</code></pre></div>



<p>このコマンドを実行すると、ブラウザが自動的に開き、<code>http://localhost:3000</code>でReactアプリケーションが表示されます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="635" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_01-1024x635.jpg" alt="Reactアプリケーションの初期画面" class="wp-image-15422" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_01-1024x635.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_01-300x186.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_01-768x476.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_01.jpg 1045w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Reactアプリケーションの初期画面</figcaption></figure>
</div>


<h2 class="wp-block-heading">JSXの基本文法</h2>



<p class="is-style-bg_stripe">ここからはいったんReactで使用する文法について解説をしていきます。その後、実際に手を動かしてTODOアプリ開発の第一歩目を踏み出しましょう。</p>



<p><strong>JSX</strong>は、<strong>JavaScriptの中にHTMLライクな記法を書くことができるReactの拡張構文</strong>です。</p>



<h3 class="wp-block-heading">基本的なJSX</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function App() {
  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;h1&gt;Hello, React!&lt;/h1&gt;
      &lt;p&gt;これはJSXで書かれたコンポーネントです。&lt;/p&gt;
    &lt;/div&gt;
  );
}</code></pre></div>



<h3 class="wp-block-heading">JSXの特徴</h3>



<ol class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>className属性</strong>: HTMLの<code>class</code>ではなく、<code>className</code>を使用</li>



<li><strong>閉じタグ</strong>: すべての要素は閉じタグが必要（<code>&lt;img /&gt;</code>のように自己終了タグも可能）</li>



<li><strong>JavaScript式の埋め込み</strong>: <code>{}</code>を使ってJavaScriptの式を埋め込むことが可能</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>function App() {
  const name = &quot;React&quot;;
  const items = [&quot;アイテム1&quot;, &quot;アイテム2&quot;, &quot;アイテム3&quot;];

  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;h1&gt;Hello, {name}!&lt;/h1&gt;
      &lt;ul&gt;
        {items.map((item, index) =&gt; (
          &lt;li key={index}&gt;{item}&lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}</code></pre></div>


<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 class="is-style-bg_stripe">それでは、ここから実際に手を動かしてコンポーネントを作成してみましょう。<br>普段お使いのエディタでtodo-appディレクトリを開いたら、<code>src</code>フォルダ内に新しいファイルを作成します。</p>



<h3 class="wp-block-heading">1. TodoItemコンポーネントの作成</h3>



<p><code>src/TodoItem.js</code>ファイルを作成し、以下のコードを記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="TodoItem.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;

function TodoItem({ text, completed }) {
  return (
    &lt;div className=&quot;todo-item&quot;&gt;
      &lt;input 
        type=&quot;checkbox&quot; 
        checked={completed} 
        readOnly 
      /&gt;
      &lt;span style={{ 
        textDecoration: completed ? &#39;line-through&#39; : &#39;none&#39; 
      }}&gt;
        {text}
      &lt;/span&gt;
    &lt;/div&gt;
  );
}

export default TodoItem;</code></pre></div>



<h3 class="wp-block-heading">2. App.jsの修正</h3>



<p><code>src/App.js</code>を以下のように修正します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-file="App.js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import &#39;./App.css&#39;;
import TodoItem from &#39;./TodoItem&#39;;

function App() {
  return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;h1&gt;React TODOアプリ&lt;/h1&gt;
      &lt;div className=&quot;todo-list&quot;&gt;
        &lt;TodoItem text=&quot;Reactを学ぶ&quot; completed={false} /&gt;
        &lt;TodoItem text=&quot;TODOアプリを作る&quot; completed={true} /&gt;
        &lt;TodoItem text=&quot;データベース連携&quot; completed={false} /&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre></div>



<h3 class="wp-block-heading">3. スタイルの追加</h3>



<p><code>src/App.css</code>に以下のスタイルを追加します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-css" data-file="App.css" data-lang="CSS"><code>.App {
  text-align: center;
  padding: 20px;
  max-width: 600px;
  margin: 0 auto;
}

.todo-list {
  margin-top: 20px;
}

.todo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px;
  border-bottom: 1px solid #eee;
}

.todo-item input[type=&quot;checkbox&quot;] {
  margin-right: 10px;
}

.todo-item span {
  font-size: 16px;
}</code></pre></div>



<h2 class="wp-block-heading">動作確認</h2>



<p>開発サーバーが起動している状態で、ブラウザを確認すると、以下のような表示が確認できます。</p>


<div class="wp-block-image is-style-browser_mac size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="946" height="465" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02.jpg" alt="TODOアプリ（第１回：完成イメージ）" class="wp-image-15421" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02.jpg 946w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02-300x147.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/07/react_todo_series_01_02-768x378.jpg 768w" sizes="(max-width: 946px) 100vw, 946px" /><figcaption class="wp-element-caption">TODOアプリ（第１回：完成イメージ）</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>「React TODOアプリ」というタイトル</li>



<li>3つのTODOアイテム（チェックボックス付き）</li>



<li>2番目のアイテムが完了状態（取り消し線付き）</li>
</ul>
</div></div>



<h2 class="wp-block-heading">発展課題</h2>



<p>基本を理解したら、ぜひ以下の課題に挑戦してみてください！</p>



<ol class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>新しいTODOアイテムを追加する（ハードコーディングで）</strong></li>



<li><strong>アイテムの表示順序を変更する（ハードコーディングで）</strong></li>



<li><strong>異なるスタイルを適用する</strong></li>
</ol>


<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">FAQ</h2>



<dl class="swell-block-faq -icon-circle is-style-faq-border" data-q="fill-custom" data-a="fill-main">
<div class="swell-block-faq__item"><dt class="faq_q">Node.jsのインストールでエラーが発生した場合</dt><dd class="faq_a">
<p>Node.jsの公式サイトから最新版をダウンロードし直してください。Windowsの場合は管理者権限でインストールを実行し、インストール後にPCを再起動してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q"><code>npm start</code>でエラーが発生する場合</dt><dd class="faq_a">
<p>以下の手順を試してください。</p>



<ol class="wp-block-list">
<li><code>node_modules</code>フォルダを削除</li>



<li><code>npm install</code>を再実行</li>



<li><code>npm start</code>を実行</li>
</ol>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">ポート3000が既に使用されている場合</dt><dd class="faq_a">
<p>ターミナルで<code>Ctrl + C</code>で停止し、別のポートを使用するか、使用中のプロセスを終了してください。または、<code>npm start</code>の代わりに<code>PORT=3001 npm start</code>を実行してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">JSXでエラーが発生する場合</dt><dd class="faq_a">
<p>JSXは必ず一つの要素で囲む必要があります。複数の要素がある場合は、<code>&lt;div&gt;</code>や<code>&lt;&gt;</code>（React Fragment）で囲んでください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">ブラウザでページが表示されない場合</dt><dd class="faq_a">
<p>ブラウザのキャッシュをクリアし、開発者ツールのコンソールでエラーメッセージを確認してください。また、URLが<code>http://localhost:3000</code>になっているか確認してください。</p>
</dd></div>



<div class="swell-block-faq__item"><dt class="faq_q">コンポーネントが表示されない場合</dt><dd class="faq_a">
<p>以下の点を確認してください。</p>



<ol class="wp-block-list">
<li>ファイル名とimport文が一致しているか</li>



<li>export defaultが正しく記述されているか</li>



<li>ファイルパスが正しいか</li>
</ol>
</dd></div>
</dl>



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



<p>今回は、<strong>Reactの基礎知識と開発環境の構築</strong>について学習しました！</p>



<p>Reactは仮想DOMとコンポーネントベース開発により、効率的で保守性の高いWebアプリケーションを作ることができるJavaScriptライブラリです。</p>



<p>開発環境の準備から初めてのコンポーネント作成まで、実際に手を動かしながら学習することで、Reactの基本的な概念を理解することができました。</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/11/kekenta-icon-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/11/kekenta-icon-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>次回は、<strong>コンポーネントとJSX</strong>についてより詳しく学習していきます。コンポーネントの分割方法や、propsの受け渡しについて理解を深めていきましょう！</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>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">次の記事</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/07/eye-catch__react-components-jsx-understanding__15432-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/react-components-jsx-understanding/">【React×TODOアプリ】コンポーネントとJSXの理解【基本編：第2回】</a>
											</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="15579">
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTEuNyAxLjQgNi44IDVjLS41LjQtLjggMS0uOCAxLjZ2MjguN2MwIC44LjUgMS41IDEuMiAxLjhsMjQgMTAuM2MxLjMuNiAyLjgtLjQgMi44LTEuOFYxOWMwLS44LS41LTEuNS0xLjItMS44TDEwLjIgNy41bDIuOS0yLjJjLjktLjYgMi0uOCAzLS40bDIwLjYgOC44Yy43LjMgMS4yIDEgMS4yIDEuOFY0Mi45YzAgLjkgMSAxLjMgMS43LjhsMS43LTEuNWMuNC0uNC43LS45LjctMS41VjEzYzAtLjgtLjUtMS41LTEuMi0xLjhMMTYuNy44Yy0xLjctLjctMy42LS41LTUgLjZ6Ij48L3BhdGg+PC9zdmc+)" data-icon="LsBook" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span> <strong>僕が実際にReact学習に使用した書籍です</strong></p>


<div id="rinkerid15577" class="yyi-rinker-contents  yyi-rinker-postid-15577 yyi-rinker-img-m yyi-rinker-catid-256 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking"  data-click-tracking="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-click-id="amazon_img 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"><img decoding="async" src="https://m.media-amazon.com/images/I/51Y0-P+m94L._SL160_.jpg"  width="112" height="160" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" rel="nofollow" class="yyi-rinker-tracking" data-click-tracking="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" data-vars-amp-click-id="amazon_title 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）" >モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																	<li class="amazonkindlelink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon_kindle 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Kindle</a>					</li>
								                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/dp/B09BV2HGN3?tag=kekenta03am0b-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="amazon 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/3ace225e.aaf54072.3ace225f.2cf27f19/Rinker_o_20250722203529?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct&amp;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%25A2%25E3%2583%2580%25E3%2583%25B3JavaScript%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E3%2581%258B%25E3%2582%2589%25E5%25A7%258B%25E3%2582%2581%25E3%2582%258B%25E3%2580%2580React%25E5%25AE%259F%25E8%25B7%25B5%25E3%2581%25AE%25E6%2595%2599%25E7%25A7%2591%25E6%259B%25B8%25E3%2580%2580%25EF%25BC%2588%25E6%259C%2580%25E6%2596%25B0ReactHooks%25E5%25AF%25BE%25E5%25BF%259C%25EF%25BC%2589%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link yyi-rinker-tracking"  data-click-tracking="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）"  data-vars-amp-click-id="rakuten 15577 モダンJavaScriptの基本から始める　React実践の教科書　（最新ReactHooks対応）">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/react-todo-app-development-basics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</title>
		<link>https://kekenta-it-blog.com/school-php-and-wp/</link>
					<comments>https://kekenta-it-blog.com/school-php-and-wp/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 17 Mar 2025 06:09:28 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ノウハウ]]></category>
		<category><![CDATA[プログラミングスクール]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=14099</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーションのアップダウンにより学習を中断してしまった期間も含めると [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。</p>



<p>しかし、それに費やした累計学習期間は1年ほど。モチベーションのアップダウンにより学習を中断してしまった期間も含めると、<strong>全部で2年半~3年</strong>ほどの時間がかかりました。</p>



<p><strong>もしあなたが今すぐにでもPHPやWordPressを習得したいなら、この記事で紹介するプログラミングスクールの無料カウンセリングを今すぐ予約することをおすすめします。</strong></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>なぜなら、独学で3年かかる内容を、適切なスクールなら6ヶ月〜1年で習得できるからです。</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>ただ、僕が独学を貫いてきた経験を振り返って強く感じているのは、<strong><span class="swl-marker mark_orange">PHPを学習する目的が転職や副業なのであれば、プログラミングスクールへ通うのが望ましい</span></strong>ということです。</p>



<p>プログラミングスクールはお金もかかるし、金額も決して安くはありません。ただ、お金は稼げば増えますが、過ぎ去った時間だけは二度と取り戻すことができません。</p>



<p>僕自身の経験を踏まえ、本気でPHPを仕事にしたいとお考えであれば、プログラミングスクールへ通うことがもっとも現実的な選択だと考えています。</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>そこでこの記事では、これからPHPを学習して仕事をしていきたい方へ向けて、<strong>PHPが学べるおすすめのプログラミングスクール</strong>をご紹介します。</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>



<div class="swell-block-capbox cap_box is-style-shadow"><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-good_list">
<li>PHPが学べるプログラミングスクールを選ぶポイント</li>



<li>PHPを学ぶのにおすすめのプログラミングスクール</li>



<li>PHPをプログラミングスクールで学ぶメリット</li>



<li>PHPを学んだあとのキャリアプラン</li>



<li>プログラミングスクールを選ぶときの注意点</li>
</ul>
</div></div>



<p class="is-style-icon_pen">PHPを学ぶことは、日本だけでなく世界中のWebサイトで使用されているWordpressを扱えるようになることにもつながります。そのため本記事では、<strong>PHPだけでなく、Wordpressを学べるプログラミングスクール</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>



<p class="has-text-align-center is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>今回ご紹介するプログラミングスクールの早見表</strong><br><span style="text-decoration: underline;"><span class="swl-fz u-fz-xs">※スクール名のリンクをクリックするとページ内遷移します。</span></span></p>



<div class="swell-block-tab is-style-bb" data-width-pc="auto" data-width-sp="auto"><ul class="c-tabList" role="tablist"><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="true" aria-controls="tab-c6580449-0" data-onclick="tabControl"><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>すべてのスクール</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-c6580449-1" data-onclick="tabControl">Webエンジニア向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-c6580449-2" data-onclick="tabControl">Webサイト制作向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-c6580449-3" data-onclick="tabControl">給付金制度あり</button></li></ul><div class="c-tabBody">
<div id="tab-c6580449-0" class="c-tabBody__item" aria-hidden="false"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-c6580449-1" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-c6580449-2" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr></tbody></table></figure>
</div>



<div id="tab-c6580449-3" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>
</div></div>



<p class="is-style-icon_announce">どのスクールが自分に合うか迷ったら、まずは無料カウンセリングを受けてみることをおすすめします。</p>



<p>各スクールの特徴は上記の通りですが、実際に話を聞いてみないと分からないこともたくさんあります。</p>



<p><strong>無料で相談できる機会を逃すのはもったいないです。</strong></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>


<h2 class="wp-block-heading">PHPが学べるプログラミングスクールを選ぶ「７つ」のポイント</h2>



<p>PHPが学べるプログラミングスクールは本当にたくさんあります。その中から自分に合ったスクールを見つけ出すのは容易なことではありません。</p>



<p>そこで本章では、<strong><span class="swl-marker mark_yellow">プログラミングスクールを選ぶ上での<span class="swl-inline-color has-swl-deep-02-color">７つ</span>のポイント</span></strong>をご紹介します。</p>



<p>スクールを探す際の注目ポイントとして、ぜひおさえていただければと思います。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon">  <strong>プログラミングスクールを選ぶ７つのポイント</strong></span></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>現役エンジニアによる指導体制</li>



<li>カリキュラム</li>



<li>料金</li>



<li>質問サポート</li>



<li>転職・案件獲得サポート体制</li>



<li>実績</li>



<li>無料体験・カウンセリングの提供</li>
</ul>
</div></div>



<p>以下より、ひとつずつ解説していきます。</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="現役エンジニアによる指導体制">１．現役エンジニアによる指導体制</h3>



<p>プログラミングスクール選びで最も重要視するべきは、<strong>講師が現役エンジニアであるかどうか</strong>という点です。</p>



<p>実のところ、一部のプログラミングスクールでは、大学生やスクール卒業生が講師を務めているケースがあります。</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>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNCAxOGg0YzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjIwYzAtMS4xLjktMiAyLTJ6TTQxIDE0SDI3bC43LTcuMWMuMi0xLjgtLjYtMy41LTItNC42LS45LS43LTIuMi0uNS0yLjkuNUwxNS4zIDE0Yy0uOSAxLjMtMS4zIDIuOS0xLjMgNC40VjM4YzAgMi4yIDEuOCA0IDQgNGgyMC44YzEuOSAwIDMuNS0xLjMgMy45LTMuMWwzLTEzLjZjLjItLjkuMy0xLjcuMy0yLjZWMTljMC0yLjgtMi4yLTUtNS01eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsThumbUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> 講師が<strong>現役エンジニア</strong>を務めているメリット</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-good_list -list-under-dashed">
<li>現役がゆえに実務で必要とされる知識とスキルの習得に安心感がある</li>



<li>エンジニアの実際の業務内容を理解している</li>



<li>現場での実践的な知見をおしえてもらえる</li>



<li>技術的な疑問点に迅速な解答を出せる<br>（※大学生やスクール卒業生の場合「一度調べてあとでお答えします！」というケースも……）</li>
</ul>
</div></div>



<p>このように、講師が現役エンジニアであることには大きなメリットがあります。</p>



<p>効率的な学習を目指す場合は、<strong>現役エンジニアが講師を務めているプログラミングスクールを選択する</strong>ことをおすすめします。</p>



<p class="is-style-icon_good">この記事でご紹介するプログラミングスクールは<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" id="web開発とweb制作の選択">２．カリキュラム</h3>



<p>Webサイトで使用されているプログラミング言語は様々ですが、その中でもPHPは圧倒的なシェアを誇ります。そのため、PHPの活用範囲は多岐にわたります。</p>



<p>例えば、<strong>Web制作</strong>ではWordPressでPHPが使用されています。一方、<strong>Web開発</strong>ではLaravelなどのPHPフレームワークが活用されています。</p>



<p class="u-mb-ctrl u-mb-30">このように、PHPはWeb制作・Web開発の両方で幅広く利用されているため、<strong><span class="swl-marker mark_yellow">プログラミングスクールへ通う学習目的に適したカリキュラムがあるかどうか</span></strong>を確認することがとても大切です。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> 学習目的とそれに対応する学習内容</strong></p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>学習目的</th><th>学習内容</th></tr></thead><tbody><tr><td>Web制作</td><td>WordPressによるWeb制作のためのPHP学習</td></tr><tr><td>Web開発</td><td>PHPとLaravelによるバックエンド開発</td></tr></tbody></table></figure>



<p>ちなみにですが、Web制作の学習は、フリーランスとしてのキャリア形成に適しています。一方、Web開発の学習は、高い市場価値を持つエンジニアとしての成長につながります。</p>



<p>どちらのキャリアを選択するのかによって学習内容は大きく異なるため、事前に学習目的を明確にすることが大切です。</p>



<p>また、学習目的によって適したプログラミングスクールも変わってきます。</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 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="適切な料金設定">３．料金</h3>



<p>カリキュラムやサポート内容に見合った料金設定であるかどうかを確認することも大切です。</p>



<p>料金が極端に安いまたは高額な場合、期待するサービスの質と実際のサービス内容にギャップが生じる可能性があります。</p>



<p><span class="swl-marker mark_orange"><strong>料金とサービスの質は必ずしも比例しません。</strong></span>実績や評判・口コミも確認し、適切な料金設定であるか判断することが大切です。</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="質問対応の充実度">４．質問サポート</h3>



<p>質問サポートがどこまでしっかりしているのかを確認することが大切です。</p>



<p>仮に現役エンジニアが講師を務めていても、質問できる時間がほとんどないようでは、ただお金を払って教材をもらい独学で学習することと同じになってしまいます。</p>



<p>プログラミングスクールに通う大きなメリットのひとつは、現役エンジニアの経験にもとづく技術的な話を聞くことができることです。</p>



<p>サポート体制はスクールごとに異なります。具体的には、<strong>以下の5点</strong>を確認しましょう。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><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></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>質問可能な回数</li>



<li>質問を受け付けている時間帯</li>



<li>質問方法の詳細</li>



<li>回答までの所要時間</li>



<li>回答の質的</li>
</ul>
</div></div>



<p class="is-style-icon_good">質問サポートがしっかりと整っていれば、独学だと行き詰まってしまい余計な時間をかけがちな内容もスムーズに学習することが可能です。</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="転職支援体制の充実度">５．転職・案件獲得サポート体制</h3>



<p>PHPをプログラミングスクールで学習する目的はいくつかあるかと思います。中でも、エンジニア転職を目指す場合、転職支援体制がどれだけ充実しているかがとても重要です。</p>



<p>その理由は、<strong>技術習得と転職活動にそれぞれ必要な労力がまったく異なるため</strong>です。</p>



<p>例えば、実務のスタートラインに立てるだけの技術力が備わったとしても、転職活動で失敗してしまえばプログラミングスクールに通った意味が無くなってしまいます。</p>



<p>また、プログラミング学習と並行しながら自力で転職活動を行うことはとても大変なことです。</p>



<p>そのため、プログラミングスクールで以下のような転職サポートが用意されていると、転職成功まで比較的安心感をもってPHPの習得に励むことができます。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> あると安心な転職・案件獲得サポートの例</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>キャリアカウンセリング</li>



<li>自己分析</li>



<li>企業選び</li>



<li>応募書類作成</li>



<li>面接準備</li>



<li>転職・案件獲得保証</li>
</ul>
</div></div>



<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="転職実績の確認">６．実績</h3>



<p>ここまでご紹介したポイントもすべて大切ですが、「本当に選んで大丈夫なプログラミングスクールなのか」を見極めるうえで最も客観的な目安となるのが<strong>転職実績</strong>です。</p>



<p>高い転職実績を持つということは、それだけ各サービスの質が保証されていることの裏付けにもなります。</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 class="is-style-balloon_box u-mb-ctrl u-mb-10"><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></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>講師の指導力</li>



<li>カリキュラムの完成度</li>



<li>質問サポート</li>



<li>転職支援の効果</li>



<li>ポートフォリオ作成指導</li>
</ul>
</div></div>



<p>もし転職実績がしっかりあるプログラミングスクールであれば、上記のサポート体制の質も高いことがうかがえます。</p>



<p class="is-style-icon_good">SNS上で評判や口コミを調べ、サポート体制の実態や実績の根拠を確認するのも有効です。</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="無料体験カウンセリングの提供">７．無料体験・カウンセリングの提供</h3>



<p>ここまで、「現役エンジニアによる指導か？」、「カリキュラムは目的にマッチしているか？」、「十分な実績はあるのか？」など、大切なポイントについてご紹介してきました。</p>



<p class="is-style-icon_info">しかし、スクールのウェブサイト情報だけでは、必要な情報を十分に得られない場合があります。</p>



<p>そのため、最終的には、<strong>無料体験や無料カウンセリング</strong>を通じて、詳細な情報をご自身の目で確認することがとても大切です。</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>PHPを学べるプログラミングスクールを選択する際は、「無料体験・無料カウンセリングを提供しているかどうか」という点も重視することをおすすめします。</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>確かに初期投資は必要ですが、独学で3年かかる内容を1年で習得できれば、その分早く収入を得ることができます。</p>



<p class="is-style-bg_stripe"><strong>投資対効果を考えると、実は独学の方がコストが高い可能性があります。</strong></p>



<p>例えば、独学で3年かかって月収20万円の仕事に就く場合と、スクールで1年かかって月収30万円の仕事に就く場合を比較してみましょう。</p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>独学の場合：3年間の機会損失 = 約360万円</li>



<li>スクールの場合：初期投資約30万円 + 2年間の収入増 = 約480万円のプラス</li>
</ul>
</div></div>



<p class="is-style-icon_good">つまり、適切なスクール選びは、長期的に見ると大きな投資になります。</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>


<h2 class="wp-block-heading" id="anc-school-index">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</h2>



<p>それでは、<strong>PHPやWordPressを学ぶのにおすすめのプログラミングスクール<span class="swl-inline-color has-swl-deep-04-color">７選</span></strong>をご紹介します。</p>



<p>それぞれのスクールやコース・プランの特徴をテーブルにまとめています。ここまで見てきたポイントを踏まえつつ、どのプログラミングスクールが自分に適しているかを冷静に見極めましょう。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><a href="#anc-samurai-engineer"><strong>侍エンジニア（SAMURAI ENGINEER</strong>）</a></li>



<li><strong><a href="#anc-ninja-code">忍者CODE</a></strong></li>



<li><strong><a href="#anc-dmm-webcamp">DMM WEBCAMP（ウェブキャンプ）</a></strong></li>



<li><strong><a href="#anc-codecamp">CodeCamp（コードキャンプ）</a></strong></li>



<li><strong><a href="#anc-day-tra">デイトラ</a></strong></li>



<li><strong><a href="#anc-webcoach">WEBCOACH（ウェブコーチ）</a></strong></li>



<li><strong><a href="#anc-internet-academy">INTERNET ACADEMY（インターネットアカデミー）</a></strong></li>
</ul>
</div></div>



<p class="has-text-align-center is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>今回ご紹介するプログラミングスクールの早見表</strong><br><span style="text-decoration: underline;"><span class="swl-fz u-fz-xs">※スクール名のリンクをクリックするとページ内遷移します。</span></span></p>



<div class="swell-block-tab is-style-bb" data-width-pc="auto" data-width-sp="auto"><ul class="c-tabList" role="tablist"><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="true" aria-controls="tab-6cdda767-0" data-onclick="tabControl"><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>すべてのスクール</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-6cdda767-1" data-onclick="tabControl">Webエンジニア向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-6cdda767-2" data-onclick="tabControl">Webサイト制作向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-6cdda767-3" data-onclick="tabControl">給付金制度あり</button></li></ul><div class="c-tabBody">
<div id="tab-6cdda767-0" class="c-tabBody__item" aria-hidden="false"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-6cdda767-1" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-6cdda767-2" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr></tbody></table></figure>
</div>



<div id="tab-6cdda767-3" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>
</div></div>



<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-samurai-engineer"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール①</span></span>　<br><strong>侍エンジニア（SAMURAI ENGINEER</strong>）</h3>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="445" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/samurai-engineer-1024x445.jpg" alt="侍エンジニア公式TOPページFV" class="wp-image-14549" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/samurai-engineer-1024x445.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/samurai-engineer-300x130.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/samurai-engineer-768x333.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/samurai-engineer.jpg 1246w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">侍エンジニア（SAMURAI ENGINEER）公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></figcaption></figure>
</div>


<p>PHPやWordPressを学ぶのにおすすめのプログラミングスクールの１つ目は、プログラミング関係の調べ物をしたことがある方なら大体の人が見たことのあるであろう<strong>侍エンジニア（SAMURAI ENGINEER）</strong>です。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>侍エンジニア（SAMURAI ENGINEER）</td></tr><tr><th>PHPが学べるコース名（３つ）</th><td><span data-icon="check" class="swl-inline-list">プログラミング 教養コース</span><br><span data-icon="check" class="swl-inline-list">オーダーメイドコース</span><br><span data-icon="check" class="swl-inline-list">Webエンジニア転職保証コース</span></td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td>99,000円</td></tr><tr><th>受講料金（税込）</th><td>&lt;&lt;&lt; <strong>プログラミング 教養コース</strong> &gt;&gt;&gt;<br>4週間：66,000円<br>12週間：198,000円<br>24週間：297,000円<br><br>&lt;&lt;&lt; <strong>オーダーメイドコース</strong> &gt;&gt;&gt;<br>12週間：495,000円<br>24週間：781,000円<br>48週間：1,188,000円<br><br>※上記の両コースとも<span class="swl-marker mark_green"><strong>学生は5~10%の学割対象</strong></span><br><br>&lt;&lt;&lt; <strong>Webエンジニア転職保証コース</strong> &gt;&gt;&gt;<br>16週間：495,000円<br>24週間：781,000円<br>48週間：1,188,000円<br><strong><span class="swl-marker mark_orange">全額返金保証付き</span></strong></td></tr><tr><th>受講期間（目安）</th><td>250～300時間</td></tr><tr><th>PHP対応コースでの学習内容</th><td>&lt;&lt;&lt; <strong>プログラミング 教養コース</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">JavaScript</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">WordPress</span><br><span data-icon="check" class="swl-inline-list">その他……</span>Photoshop/LPIC/Java　など<br><br>&lt;&lt;&lt; <strong>オーダーメイドコース</strong> &gt;&gt;&gt;<br>※受講したいカリキュラムを自由にカスタマイズ可能<br><br>&lt;&lt;&lt; <strong>Webエンジニア転職保証コース</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">JavaScript</span><br><span data-icon="check" class="swl-inline-list">PHP/Laravel</span><br><span data-icon="check" class="swl-inline-list">MySQL</span><br><span data-icon="check" class="swl-inline-list">Git</span></td></tr><tr><th>成果物</th><td>自分のアイデアを形にしたオリジナルWebサービスなど</td></tr><tr><th>質問サポート対応時間</th><td><span data-icon="check" class="swl-inline-list">受講生限定のQ&amp;Aサイト（24時間対応）</span><br><span data-icon="check" class="swl-inline-list">インストラクターに質問（24時間対応）</span><br><strong><span class="swl-marker mark_orange">※回数無制限</span></strong></td></tr><tr><th>サポート</th><td>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">オリジナル学習教材を利用し放題</span><br><span data-icon="check" class="swl-inline-list"><strong>現役エンジニア</strong>の専属コーチによる進捗管理・モチベーション管理</span><br><span data-icon="check" class="swl-inline-list">受講生同士の交流イベントに参加可能</span><br><br>&lt;&lt;&lt; <strong>転職サポート</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">無料の転職サポートあり（求人企業とのマッチング・面接&amp;履歴書対策）</span><br><br>&lt;&lt;&lt; <strong>料金サポート</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list"><strong><span class="swl-marker mark_orange">専門実践教育訓練給付金</span></strong></span><strong>（最大80%OFF）</strong><br><span data-icon="check" class="swl-inline-list"><strong><span class="swl-marker mark_orange">リスキング補助金</span>（最大70%OFF）</strong></span><br><span data-icon="check" class="swl-inline-list"><strong>全額返金保証</strong></span></td></tr><tr><th>公式サイト</th><td><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248" target="_blank" rel="noreferrer noopener"><strong>侍エンジニア 公式サイト</strong></a><span data-icon="LsExternalLink" data-id="12" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p>侍エンジニアで<strong>PHPを学べるコースは全部で３つ</strong>です。</p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>プログラミング 教養コース</strong></li>



<li><strong>オーダーメイドコース</strong></li>



<li><strong>転職保証コース</strong></li>
</ul>
</div></div>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> コースごとの特徴</strong></p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-thead-centered is-all-centered--va is-style-regular u-mb-ctrl u-mb-30"><table style="--table-width:600px;--swl-cell1-width:140px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_gray);--thead-color--txt:var(--swl-text_color--black)"><tr><th></th><th data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>メリット</th><th data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="close" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>デメリット</th></tr></thead><tbody style="--tbody-th-color--bg:var(--color_deep04);--tbody-th-color--txt:var(--swl-text_color--white)"><tr><th>プログラミング<br>教養コース</th><td><span data-icon="circle" class="swl-inline-list">料金が安い</span><br><span data-icon="circle" class="swl-inline-list">短期間に対応</span><br><span data-icon="circle" class="swl-inline-list">LPICなどの資格が取得できる</span></td><td><span data-icon="close" class="swl-inline-list">カリキュラム通りのことしか学べない</span></td></tr><tr><th>オーダーメイド<br>コース</th><td><span data-icon="circle" class="swl-inline-list">オーダーメイドカリキュラム対応</span><br><span data-icon="circle" class="swl-inline-list">経験豊富な講師が専属マンツーマンで伴走</span></td><td><span data-icon="close" class="swl-inline-list">料金が高い</span><br><span data-icon="close" class="swl-inline-list">最低でも3ヶ月からの利用が必須</span></td></tr><tr><th>Webエンジニア<br>転職保証コース</th><td><span data-icon="circle" class="swl-inline-list">転職できなかった場合は<strong><span class="swl-marker mark_orange">全額返金</span></strong></span><br><span data-icon="circle" class="swl-inline-list">経験豊富な講師が専属マンツーマンで伴走</span><br><span data-icon="circle" class="swl-inline-list">キャリアアドバイザーによる転職サポート</span><br><span data-icon="circle" class="swl-inline-list">AWSの資格を取得できる</span></td><td><span data-icon="close" class="swl-inline-list">料金が高い</span><br><span data-icon="close" class="swl-inline-list">最低でも4ヶ月からの利用が必須</span></td></tr></tbody></table></figure>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><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">
<dl class="swell-block-dl is-style-border">
<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">エンジニア転職</span>を目指している方：Webエンジニア転職保証コース</dt>



<dd class="swell-block-dl__dd">
<p>Webエンジニア転職保証コースは、<strong><span class="swl-marker mark_orange">最短4ヶ月でエンジニア転職を目指すコース</span></strong>です。資格取得や専門家によるキャリアサポート、転職返金保証サポートがそろっているため、エンジニア転職へ向けて全力投球できます。</p>
</dd>



<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">フリーランス・スキル向上</span>が目標の方：プログラミング<strong>教養コース</strong>または<strong>オーダーメイドコース</strong></dt>



<dd class="swell-block-dl__dd">
<p>オーダーメイドコースはその名の通り、カリキュラムのオーダーメイドに対応している料金が高めのコースです。そのため、<strong><span class="swl-marker mark_orange">作りたいものが明確＆お金に余裕のある</span></strong>方に向いています。</p>



<p>それ以外の方であれば、プログラミング教養コースで十分なスキルを身につけることも可能なのでそちらをおすすめします。</p>
</dd>
</dl>
</div></div>



<p>なお、３つのコースすべてにおいて「専属コーチによる進捗管理・モチベーション管理」があります。<strong>現役エンジニアがマンツーマンで学習をサポート</strong>してくれるため、<strong><span class="swl-marker mark_orange">挫折率が低い</span></strong>です。</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 class="u-mb-ctrl u-mb-30">詳しくは侍エンジニアの<a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248" target="_blank" rel="noreferrer noopener"><strong>無料カウンセリング</strong></a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">でご確認ください。</p>



<p><strong>今すぐ無料カウンセリングを予約して、あなたの転職プランを相談してみませんか？</strong></p>



<p class="is-style-icon_good">転職成功率99%という実績は、適切な指導体制とサポートの充実を証明しています。</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>

<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="888" height="239" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-6.png" alt="" class="wp-image-14522" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-6.png 888w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-6-300x81.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-6-768x207.png 768w" sizes="(max-width: 888px) 100vw, 888px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://lp.sejuku.net/course/">侍エンジニア</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s">転職成功率99%＆受講生の離脱率わずか2.1%の挫折しないスクールNo.1</span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="f977aede"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">今すぐ無料カウンセリングを予約する　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h3 class="wp-block-heading" id="anc-ninja-code"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール②</span></span>　<br><strong>忍者CODE</strong></h3>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="459" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/nija-code-1024x459.jpg" alt="忍者CODE公式TOPページFV" class="wp-image-14548" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/nija-code-1024x459.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/nija-code-300x134.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/nija-code-768x344.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/nija-code.jpg 1261w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540">忍者CODE公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></figcaption></figure>
</div>


<p>続いてご紹介するプログラミングスクールは、業界最安級の初心者向けスクールの忍者CODEです。PHPを学べるWebアプリ向けのコースはありませんが、Wordpressサイト制作のスキルをしっかり学ぶことができます。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>忍者CODE</td></tr><tr><th>PHPが学べるコース名</th><td>Web制作コース</td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td>なし</td></tr><tr><th>受講料金（税込）</th><td>98,000円～</td></tr><tr><th>受講期間（目安）</th><td>2ヶ月～4ヶ月</td></tr><tr><th>PHP対応コースでの学習内容</th><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">JavaScript/jQuery</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">WordPress</span>　など</td></tr><tr><th>成果物</th><td><span data-icon="check" class="swl-inline-list">レスポンシブ対応Webサイト</span><br><span data-icon="check" class="swl-inline-list">ブログサイト（Wordpress）</span><br><span data-icon="check" class="swl-inline-list">英単語学習アプリ開発</span></td></tr><tr><th>質問サポート対応時間</th><td><span data-icon="circle" class="swl-inline-list">チャットにて24時間対応</span><br><span data-icon="circle" class="swl-inline-list">オンラインでの直接指導</span><br><span data-icon="circle" class="swl-inline-list">個別キャリア相談</span><br>※独学プランはチャットサポートのみ</td></tr><tr><th>サポート</th><td>1社以上との業務委託の年間契約を締結<br><br>&lt;&lt;&lt; <strong>案件獲得保証</strong> &gt;&gt;&gt;<br>受講後に——<br><span data-icon="circle" class="swl-inline-list">副業向けプラン：5万円</span><br><span data-icon="circle" class="swl-inline-list">フリーランス向けプラン：10万円分</span><br>の案件を必ず紹介<br><br>&lt;&lt;&lt; <strong>転職サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">キャリアコンサルタントによるキャリア面談</span><br><span data-icon="circle" class="swl-inline-list">転職成功まで一気通貫で転職サポート</span><br><span data-icon="circle" class="swl-inline-list">履歴書・職務経歴書の添削や面談対策サポート</span><br><span data-icon="circle" class="swl-inline-list">ニーズに合った求人の紹介</span><br><span data-icon="circle" class="swl-inline-list">ポートフォリオ相談・添削</span><br><br>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">受講期間・サポート期間が無期限</span><br><span data-icon="circle" class="swl-inline-list">24時間、無期限、無制限のチャットでの学習サポート</span></td></tr><tr><th>公式サイト</th><td><a href="//af.moshimo.com/af/c/click?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540" target="_blank" rel="noreferrer noopener"><strong>忍者CODE 公式サイト</strong></a><span data-icon="LsExternalLink" data-id="12" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></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>PHPを学べるコースでは、さらに<strong><span class="swl-marker mark_yellow">３つのプラン</span></strong>の中から自分に適したものを選択できるのが特徴です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>転職支援プラン</strong></li>



<li><strong>案件獲得保証プラン</strong></li>



<li><strong>独学プラン</strong></li>
</ul>
</div></div>



<p class="u-mb-ctrl u-mb-10 is-style-balloon_box"><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></p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-thead-centered is-all-centered"><table style="--table-width:600px;" class="has-fixed-layout"><thead><tr><th></th><th>転職支援プラン</th><th>案件獲得保証プラン</th><th>独学プラン</th></tr></thead><tbody><tr><th>特徴</th><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>手厚い転職サポート</td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>卒業後、案件を必ず紹介</td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon="doubleCircle" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>基礎から応用まで学べる</td></tr><tr><th>PHP学習</th><td colspan="3" data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="doubleCircle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br></td></tr><tr><th>料金</th><td>448,000円～<br><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">※補助金適用で</span></strong><br><strong><span class="swl-inline-color has-swl-deep-01-color">実質162,909円～</span></strong></span></td><td>488,000円</td><td>98,000円</td></tr><tr><th>期間</th><td>2～3カ月</td><td colspan="2">3～4カ月</td></tr><tr><th>チャットサポート</th><td colspan="3" data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>回数無制限</td></tr><tr><th>メンター相談</th><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>12回</td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>10回</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><th>課題フィードバック</th><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="circle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>チャット対応</td><td colspan="2" data-has-cell-bg="1" data-has-cell-icon="l-obj"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>直接フィードバック／オンライン</td></tr><tr><th>転職支援</th><td><span data-icon="circle" class="swl-inline-list">書類添削<br></span><br><span data-icon="circle" class="swl-inline-list">面接対策<br></span><br><span data-icon="circle" class="swl-inline-list">転職先の求人紹介<br></span><br><span data-icon="circle" class="swl-inline-list">ポートフォリオ添削</span></td><td colspan="2" data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><th>副業支援</th><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td><span data-icon="circle" class="swl-inline-list">10万円の案件獲得保証</span><br><span data-icon="circle" class="swl-inline-list">実力判定テスト</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr></tbody></table></figure>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> 目標別おすすめプラン</strong></span></div><div class="cap_box_content">
<dl class="swell-block-dl is-style-border">
<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">エンジニア転職</span>を目指している方：転職支援プラン</dt>



<dd class="swell-block-dl__dd">
<p>転職支援プランは、PHP習得のみならず、転職成功まで手厚くサポートしてくれるプランです。<strong><span class="swl-marker mark_orange">このプランを選択した多くの受講生が転職に成功し、年収アップを達成</span></strong>しています。</p>
</dd>



<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">フリーランス</span>が目標の方：<strong>案件獲得保証プラン</strong></dt>



<dd class="swell-block-dl__dd">
<p>案件獲得保証プランには、<strong><span class="swl-marker mark_orange">卒業後に5万円分の案件を100%紹介してくれる保証</span></strong>が付いています。</p>



<p>フリーランスとして駆け出したばかりのときは、案件獲得の営業がもっとも大きなハードルになります。<strong>第一歩目となる案件獲得を保証</strong>してくれるため、フリーランスとしてスタートする上でとても大きなアドバンテージになります。</p>
</dd>



<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">スキルアップ</span>が目的の方：<strong>独学プラン</strong></dt>



<dd class="swell-block-dl__dd">
<p>独学プランには、転職支援プランや案件獲得保証プランのような保証はついてきません。しかし、PHPを利用したWeb制作の基礎から応用まで一気に学ぶことができます。</p>



<p>また、「本当の意味での独学」とは異なり、チャットサポートや課題フィードバックが利用可能なため、<strong><span class="swl-marker mark_orange">不明点などが出てきてもスムーズに学習を進めることが可能</span></strong>です。</p>
</dd>
</dl>
</div></div>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>忍者CODEの魅力は、なんといっても<strong>24時間・無期限・無制限で質問ができること</strong>です。</p>



<p>初心者がひとりでPHPの学習を進めようとすると多くの方がどこかのポイントで行き詰まります。しかし、忍者CODEでは、経験豊富な現役エンジニアに質問できるため、<strong><span class="swl-marker mark_yellow">挫折することなくPHPを習得することが可能</span></strong>です。</p>
</div></div>



<p>なお、忍者CODE<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540">は<a href="//af.moshimo.com/af/c/click?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540" target="_blank" rel="noreferrer noopener">無料レッスン</a>や<a href="//af.moshimo.com/af/c/click?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540" target="_blank" rel="noreferrer noopener">無料メンター相談</a>に対応しています。</p>



<p class="is-style-icon_announce">まずは無料で相談してみて、本当に自分に合うかどうか確かめてみましょう。</p>



<p>業界最安級の料金設定で、24時間・無期限・無制限のサポートが受けられるのは忍者CODEだけです。</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/11/kekenta-icon-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/11/kekenta-icon-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>無料メンター相談でAmazonギフト券ももらえるので、まずは相談してみることをおすすめします。損はありませんよ。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center u-mb-ctrl u-mb-0">＼ <span class="swl-fz u-fz-s"><strong>無料メンター相談の参加者はもれなくAmazonギフト券がもらえる‼</strong></span> ／</p>


<div class="wp-block-image size_s u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="456" height="361" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image.png" alt="忍者CODE無料メンター・相談特典" class="wp-image-14302" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image.png 456w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-300x238.png 300w" sizes="(max-width: 456px) 100vw, 456px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://ninjacode.work/"><span style="text-decoration: underline;">忍者CODE</span></a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong>キャリアのことでも学習のことでも何でもOK！</strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="7cee5a9d"><a href="//af.moshimo.com/af/c/click?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">今すぐ無料レッスン・メンター相談を予約する　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h3 class="wp-block-heading" id="anc-dmm-webcamp"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール③</span></span>　<br><strong><strong>DMM WEBCAMP（ウェブキャンプ）</strong></strong></h3>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="495" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/dmm-webcamp-1024x495.jpg" alt="DMM WEBCAMP公式TOPページFV" class="wp-image-14545" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/dmm-webcamp-1024x495.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/dmm-webcamp-300x145.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/dmm-webcamp-768x371.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/dmm-webcamp.jpg 1246w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">DMM WEBCAMP公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></figcaption></figure>
</div>


<p>続くプログラミングスクール３つ目は、DMM WEBCAMP（ウェブキャンプ）です。DMM WEBCAMPは未経験者プログラミングスクールNo.1となっており、初めてプログラミングを学ぶ方でも安心して利用できます。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>DMM WEBCAMP（ウェブキャンプ）</td></tr><tr><th>PHPが学べるコース名</th><td>PHP/Laravelコース</td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td>なし</td></tr><tr><th>受講料金（税込）</th><td>169,800円～<br>　→　<span class="swl-marker mark_orange"><strong>リスキング補助金適用</strong></span><strong>：61,746円～</strong></td></tr><tr><th>受講期間（目安）</th><td>1～4ヶ月</td></tr><tr><th>PHP対応コースでの学習内容</th><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">PHP/Laravel</span><br><span data-icon="check" class="swl-inline-list">データベース</span><br><span data-icon="check" class="swl-inline-list">Git/GitHub</span><br><span data-icon="check" class="swl-inline-list">Heroku</span>　など</td></tr><tr><th>成果物</th><td><span data-icon="check" class="swl-inline-list">管理機能付きタスク管理システム</span><br><span data-icon="check" class="swl-inline-list">買い物リスト管理サービス</span><br><span data-icon="check" class="swl-inline-list">オリジナルのWebサービス</span></td></tr><tr><th>質問サポート対応時間</th><td>Slackにて24時間対応</td></tr><tr><th>サポート</th><td>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list"><strong><span class="swl-marker mark_orange">講師は全員現役エンジニア</span></strong>（選考通過率10%）</span><br>　　※メンター変更保証あり<br><span data-icon="circle" class="swl-inline-list">週2回のマンツーマンメンタリング</span><br><span data-icon="circle" class="swl-inline-list">無制限の課題レビュー＆質問</span><br><span data-icon="circle" class="swl-inline-list">卒業後もカリキュラム閲覧可能</span><br><br>&lt;&lt;&lt; <strong>転職・副業サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">ポートフォリオ制作サポート</span><br><span data-icon="circle" class="swl-inline-list">無料の転職、副業サポート</span><br><br>&lt;&lt;&lt; <strong>料金サポート</strong> &gt;&gt;&gt;<br><strong><span data-icon="circle" class="swl-inline-list"><span class="swl-marker mark_orange">リスキリング補助金で最大70%還付</span></span></strong><br><strong><span data-icon="circle" class="swl-inline-list">返金保証制度（早期卒業で未利用期間分の返金）</span></strong>※条件あり</td></tr><tr><th>公式サイト</th><td><strong><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030" target="_blank" rel="noreferrer noopener">DMM WEBCAMP 公式サイト（PHP/Laravelコース）</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></strong><span data-icon="LsExternalLink" data-id="34" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p>DMM WEBCAMPのPHP/Laravelコースでは、PHPやそのフレームワークであるLaravelによるWebアプリ開発を学ぶことができます。</p>



<p class="is-style-big_icon_check">また、プログラミング学習の挫折率は95%にものぼるとされています。しかし、DMM WEBCAMPでは、習得したスキルや学習成果に応じてオープンバッジが付与されるため、最後までモチベーションを維持しやすい環境でWeb開発スキルを習得できます。</p>



<p>そして、DMM WEBCAMPならではの特典として、<strong><span class="swl-marker mark_orange">受講生限定の転職サポートや副業サポートが無料で利用できる</span></strong>ため、PHP習得後のキャリアアップにおいても安心感をもってのぞむことができます。</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>まさに<strong>未経験でエンジニア転職や副業案件の獲得を目的としている方に向いているプログラミングスクール</strong>と言えます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ちなみに、DMM WEBCAMPは<strong>リスキリング補助金</strong>に対応しており、<strong><span class="swl-inline-color has-swl-deep-03-color">受講料金の最大70%がキャッシュバック</span></strong>されます。プログラミングスクールへ通うハードルが上がる原因になりがちな費用も、リスキング補助金を利用することで負担を減らすことが可能です。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="416" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-1-1024x416.png" alt="DMM WEBCAMPリスキング補助金" class="wp-image-14321" style="object-fit:cover" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-1-1024x416.png 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-1-300x122.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-1-768x312.png 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-1.png 1529w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://web-camp.io/courses/php/">DMM WEBCAMP</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong><strong>リスキリング補助金の対象講座に認定！最大70%(最大21.3万円)がキャッシュバック</strong> </strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="c1b87672"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">DMM WEBCAMPで無料相談を受ける　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<div class="swell-block-capbox cap_box" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNOTcuNiAxMy45Yy0uNS0uNy0uNC0xLjYuMi0ybDMuNi0yLjVjLjYtLjQgMS41LS4yIDEuOS41LjUuNy40IDEuNi0uMiAybC0zLjYgMi41Yy0uNi40LTEuNS4yLTEuOS0uNXpNMTAwLjcgMjIuNGMtLjEtLjguNS0xLjUgMS4yLTEuNmw0LjQtLjRjLjctLjEgMS40LjYgMS40IDEuNC4xLjgtLjUgMS41LTEuMiAxLjZsLTQuNC40Yy0uNy4xLTEuNC0uNi0xLjQtMS40ek05MC42IDguMWMtLjctLjMtMS4xLTEuMi0uOC0xLjhsMS44LTRjLjMtLjYgMS4yLS45IDEuOS0uNi43LjMgMS4xIDEuMi44IDEuOGwtMS44IDRjLS4zLjctMS4yLjktMS45LjZ6TTQwLjkgMjguNyAyNC4yIDQuOWMtMS4xLTEuNi0yLjUtMS41LTMtMS40LS43LjItMiAuOC0yLjQgMy4xLTIuMSA4LTYuMSAxMi4yLTkuMiAxNC4zbC02LjQgNC41QzEuNyAyNi40LjggMjggLjcgMjkuOGMtLjEgMS41LjMgMi45IDEuMiA0LjEgMS4xIDEuNSAzIDQuMyA0IDUuOC43IDEgMS42IDEuOCAyLjcgMi4yLjguMyAxLjUuNCAyLjMuNCAxLjIgMCAyLjQtLjQgMy40LTEuMWwzLjktMi44IDQuNCA2LjJjLjYuOSAxLjkgMS4xIDIuOC41TDI3IDQ0Yy45LS42IDEuMS0xLjkuNS0yLjhsLTQuMi02YzMuMi0xLjYgNy44LTIuOCAxNC0yLjIgMi40LjQgMy40LS42IDMuOC0xLjIuMy0uMy45LTEuNS0uMi0zLjF6TTIxIDMyLjFsLTYuOC05LjdjMi45LTIuNyA2LjEtNi44IDgtMTMuM2w3IDEwIDcgMTBjLTYuNy0uNC0xMS43IDEuMS0xNS4yIDN6TTQyLjcgMTIuMiAzOC42IDE1Yy0uNy41LTEuNi4zLTIuMS0uNHMtLjMtMS42LjQtMi4xTDQxIDkuN2MuNy0uNSAxLjYtLjMgMi4xLjQuNS42LjMgMS42LS40IDIuMXpNMzMuOSAzLjdsLTIuMSA0LjVjLS40LjgtMS4yIDEuMS0yIC43LS44LS40LTEuMS0xLjItLjctMmwyLjEtNC41Yy40LS44IDEuMi0xLjEgMi0uNy44LjQgMS4xIDEuMy43IDJ6TTQ2LjIgMjMuOGwtNSAuNGMtLjguMS0xLjYtLjUtMS42LTEuNC0uMS0uOC41LTEuNiAxLjQtMS42bDUtLjRjLjgtLjEgMS42LjUgMS42IDEuNCAwIC44LS42IDEuNi0xLjQgMS42eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsMegaphone" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span><strong>期間限定情報をお見逃しなく！</strong></span></div><div class="cap_box_content">
<p>現在、以下のスクールで特別な割引やキャンペーンが実施中です：</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>忍者CODE</strong>：リスキング補助金で最大70%OFF</li>



<li><strong>侍エンジニア</strong>：給付金制度で最大80%OFF</li>



<li><strong>DMM WEBCAMP</strong>：専門実践教育訓練給付金対象</li>
</ul>



<p class="is-style-bg_stripe"><strong>これらの割引は<span class="swl-inline-color has-swl-deep-02-color">期間限定</span>です。今すぐ行動を起こすことをおすすめします。</strong></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></div></div>



<h3 class="wp-block-heading" id="anc-codecamp"><span style="" class="swl-inline-color"><span style="color: rgb(140, 140, 140); font-size: 0.75rem;" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール④</span></span>　<br><strong>CodeCamp（コードキャンプ）</strong></h3>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="494" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp-1024x494.jpg" alt="CodeCamp公式TOPページFV" class="wp-image-14544" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp-1024x494.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp-300x145.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp-768x371.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp-1536x741.jpg 1536w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/codecamp.jpg 1629w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">CodeCamp公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></figcaption></figure>
</div>


<p>PHPやWordPressを学ぶのにおすすめのプログラミングスクール４つ目は、CodeCamp（コードキャンプ）です。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>CodeCamp（コードキャンプ）</td></tr><tr><th>PHPが学べるコース名（４つ）</th><td><span data-icon="check" class="swl-inline-list">プログラミングコース</span><br><span data-icon="check" class="swl-inline-list">エンジニア転職コース</span><br><span data-icon="check" class="swl-inline-list">Webサイト制作コース</span><br><span data-icon="check" class="swl-inline-list">オーダーメイドコース</span></td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td rowspan="6"><a href="#anc-code-camp-hikakutable">▼ 比較表にて掲載</a></td></tr><tr><th>受講料金（税込）</th></tr><tr><th>受講期間（目安）</th></tr><tr><th>PHP対応コースでの学習内容</th></tr><tr><th>成果物</th></tr><tr><th>質問サポート対応時間</th></tr><tr><th>サポート</th><td>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">課題の添削サポート</span><br><span data-icon="circle" class="swl-inline-list">お気に入り講師機能</span><br><span data-icon="circle" class="swl-inline-list">講師を選んでレッスンを予約できる機能</span>　など<br><br>&lt;&lt;&lt; <strong>卒業後のサポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">教科書の閲覧</span><br><span data-icon="circle" class="swl-inline-list">キャリアサポート</span>　など<br><br>&lt;&lt;&lt; <strong>転職サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">専門のキャリアコンサルタントによる就職・転職サポート（履歴書/職務経歴書の作成・添削、面接対策、自己分析支援、ポートフォリオの作成支援など）</span><br><br>&lt;&lt;&lt; <strong>料金サポート</strong> &gt;&gt;&gt;<br><strong><span data-icon="circle" class="swl-inline-list"><span class="swl-marker mark_orange">リスキリング補助金で最大70%還付</span></span></strong><br><br>&lt;&lt;&lt; <strong>その他の特典</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">無料カウンセリング参加特典</span><br><span data-icon="circle" class="swl-inline-list">カウンセリング利用で受講料の1万円OFFクーポンをプレゼント</span></td></tr><tr><th>公式サイト</th><td><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"><strong>CodeCamp　公式サイト</strong></a><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsExternalLink" data-id="14" aria-hidden="true" class="swl-inline-icon"> </span><strong><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></strong></td></tr></tbody></table></figure>



<p><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p class="u-mb-ctrl u-mb-30">CodeCampでは<strong>４つのコース</strong>でPHPが受講可能です。情報を見比べられるように<strong>比較表</strong>をご用意しました。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><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></p>


<div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" id="anc-code-camp-hikakutable" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1300px;--swl-cell1-width:160px;" class="has-fixed-layout"><thead><tr><th>コース名 ▶</th><th>プログラミング</th><th>エンジニア転職</th><th>Webサイト制作</th><th>オーダーメイド</th></tr></thead><tbody><tr><th>入学金<span class="swl-fz u-fz-xs">（税込み）</span></th><td colspan="4"><span class="swl-cell-text-centered">33,000円</span></td></tr><tr><th>受講料金<span class="swl-fz u-fz-xs">（税込み）</span></th><td>16,5000円～</td><td>561,000円</td><td>16,5000円～</td><td>275,000円～</td></tr><tr><th>受講期間<span class="swl-fz u-fz-xs">（目安）</span></th><td>2ヶ月～（5～25時間/週）</td><td>4ヶ月（20～25時間/週）</td><td>6ヶ月間（17時間/週）</td><td>2ヶ月～（5～25時間/週）</td></tr><tr><th>学習内容</th><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">Bootstrap</span><br><span data-icon="check" class="swl-inline-list">JavaScript/jQuery</span><br><span data-icon="check" class="swl-inline-list">PHP/Laravel</span><br><span data-icon="check" class="swl-inline-list">MySQL</span><br>など<br>※開発環境にAWSを使用</td><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">JavaScript</span><br><span data-icon="check" class="swl-inline-list">PHP/Laravel</span><br><span data-icon="check" class="swl-inline-list">MySQL</span><br><span data-icon="check" class="swl-inline-list">Git/GitHub</span><br>など</td><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">JavaScript</span><br><span data-icon="check" class="swl-inline-list">Bootstrap</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">WordPress</span><br><span data-icon="check" class="swl-inline-list">Figma</span></td><td>※一部の科目を除き、カリキュラムを自由にカスタマイズ可能</td></tr><tr><th>成果物</th><td><span data-icon="check" class="swl-inline-list">グルメサイト</span><br><span data-icon="check" class="swl-inline-list">掲示板機能</span><br><span data-icon="check" class="swl-inline-list"><span class="u-nowrap">出品・購入機能付きフリマサイト</span></span><br><span data-icon="check" class="swl-inline-list">ログイン、パスワード認証、検索などの機能</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="hatena" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td><span data-icon="check" class="swl-inline-list">WordPressサイト</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="hatena" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><th>質問サポート<br>対応時間</th><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span class="swl-cell-text-centered"><span data-icon="circle" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></span><br><span class="swl-cell-text-centered">AI（ChatGPTの有料バージョン）によるチャットサポートを<strong>24時間365日いつでも無料</strong>で利用可能</span></td><td colspan="3" data-has-cell-bg="1" data-has-cell-icon="l-obj"><span class="swl-cell-text-centered"><span data-icon-size="l" data-icon="doubleCircle" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br>7時〜23時40分<br>※AI（ChatGPTの有料バージョン）によるチャットサポート付き</span></td></tr><tr><th>リスキング補助金</th><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span class="swl-cell-text-centered"><span data-icon="close" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></span><br><span class="swl-cell-text-centered">リスキング補助金なし</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span class="swl-cell-text-centered"><span data-icon="doubleCircle" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span><br><span class="swl-inline-color has-swl-deep-01-color"><strong>最大378,000円</strong>キャッシュバック</span></span>　</td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><br><span class="swl-cell-text-centered"><span data-icon="circle" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></span><br><span class="swl-cell-text-centered"><span class="swl-inline-color has-swl-deep-01-color"><strong>最大160,000円</strong>キャッシュバック</span><br><span class="swl-fz u-fz-s">※<strong>転職支援オプション</strong>利用で適用可能</span></span></td><td data-has-cell-bg="1" data-has-cell-icon="l-obj"><span class="swl-cell-text-centered"><span data-icon="close" data-icon-size="l" data-icon-type="obj" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></span><br><span class="swl-cell-text-centered">リスキング補助金なし</span></td></tr></tbody></table></figure>



<p>CodeCampのWebサイト制作コースには「転職支援オプション」を付けることが可能です。その分料金は高くなりますが、代わりにリスキング補助金を利用できるようになり、<strong><span class="swl-inline-color has-swl-deep-03-color">最大160,000円のキャッシュバック</span></strong>を受けることができます。</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/11/kekenta-icon-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/11/kekenta-icon-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>転職オプションを付けても<strong>補助金で金銭的負担が減る</strong>のは大きなメリットですね！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="u-mb-ctrl u-mb-30">また、サーバーサイドエンジニアを目指す方向けのコースとして「エンジニア転職コース」があります。こうしてみると、CodeCampではPHPとWebサイト制作の両方で、転職サポートに力を入れていることがわかります。</p>



<div class="swell-block-capbox cap_box is-style-shadow u-mb-ctrl u-mb-40" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong> 目標別おすすめコース</strong></span></div><div class="cap_box_content">
<dl class="swell-block-dl is-style-border">
<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">エンジニア転職</span>を目指している方：エンジニア転職・<strong>Webサイト制作</strong>コース</dt>



<dd class="swell-block-dl__dd">
<p>エンジニア転職コースはその名の通り、<strong>エンジニアとして必要なスキルを徹底的に学びつつ、転職サポートを受けることができるコース</strong>です。本格的にエンジニア転職を目指したい方には、このコースが一番おすすめです。</p>



<p>また、Webサイト制作コースは「転職サポートオプション」を付けることが可能です。その分、受講料は高くなりますが、<strong><span class="swl-marker mark_orange">代わりにリスキング補助金を利用できるようになる</span></strong>ため、Web制作での転職を目指している方にピッタリのコースと言えます。</p>
</dd>



<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">副業</span>が目標の方：<strong>Webサイト制作コース</strong></dt>



<dd class="swell-block-dl__dd">
<p>Webサイト制作コースは標準だと転職サポートが付きません。しかし、<strong>WordPressによるサイト制作スキルをしっかり学ぶことができる</strong>ため、Web制作を副業にしたい方に向いているコースです。</p>



<p class="is-style-icon_good">ちなみに筆者の本業はWordpress制作ですが、通常のHTMLサイト制作よりも高い技術力が求められる分、案件によっては<strong><span class="swl-marker mark_orange">時給換算で1万円になるケース</span></strong>もよくあります。</p>
</dd>



<dt class="swell-block-dl__dt"><span class="swl-inline-color has-swl-deep-02-color">スキルアップ</span>が目的の方：<strong>プログラミングコース・オーダーメイドコース</strong></dt>



<dd class="swell-block-dl__dd">
<p>プログラミングコースとオーダーメイドコースは、転職サポートが無いという意味では転職が目標の方には向いていないコースと言えます。しかし、今後<strong>プログラミングやWebデザイン・Web制作のスキルを身に付けたい！</strong>という方にはまさに打ってつけのコースです。</p>
</dd>
</dl>
</div></div>


<div class="wp-block-image size_s u-mb-ctrl u-mb-30 is-style-default">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="443" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-2-1024x443.png" alt="CodeCampのリスキング制度" class="wp-image-14328" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-2-1024x443.png 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-2-300x130.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-2-768x332.png 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-2.png 1423w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://codecamp.jp/">CodeCamp</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong><strong>無料カウンセリングを受けると</strong>いまなら割引クーポンがもらえる‼</strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="67d73611"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">CodeCampで無料カウンセリングを受ける　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h3 class="wp-block-heading" id="anc-day-tra"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール⑤</span></span>　<br><strong>デイトラ</strong></h3>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="575" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/daily-trial-1024x575.jpg" alt="デイトラ公式TOPページFV" class="wp-image-14546" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/daily-trial-1024x575.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/daily-trial-300x168.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/daily-trial-768x431.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/daily-trial.jpg 1437w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">デイトラ公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></figcaption></figure>
</div>


<p>デイトラは、元々SNSで企画されていた勉強会がきっかけで生まれたオンライン型プログラミングスクールです。これまでに副業・フリーランスを多数輩出した実績を持ちます。</p>



<p>また、業界最安級のため、<strong><span class="swl-marker mark_orange">費用をおさえてスキルを身につけたい方におすすめ</span></strong>できるスクールとなっています。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>デイトラ</td></tr><tr><th>PHPが学べるコース名</th><td>Web制作コース</td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td>なし</td></tr><tr><th>受講料金（税込）</th><td>129,800円</td></tr><tr><th>受講期間（目安）</th><td>114日（18時間/週の想定）<br>※学習コンテンツ自体はサポート期間後も利用可能（サポート期間：1年間）</td></tr><tr><th>PHP対応コースでの学習内容</th><td><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">Bootstrap</span><br><span data-icon="check" class="swl-inline-list">jQuery</span><br><span data-icon="check" class="swl-inline-list">Sass</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">WordPress</span><br><span data-icon="check" class="swl-inline-list">Figma</span><br><span data-icon="check" class="swl-inline-list">Github</span>　など</td></tr><tr><th>成果物</th><td><span data-icon="check" class="swl-inline-list">デイトラLP模写</span><br><span data-icon="check" class="swl-inline-list">Bootstrapによる制作サイト</span><br><span data-icon="check" class="swl-inline-list">ポートフォリオサイト</span><br><span data-icon="check" class="swl-inline-list">WordPressサイト（基礎・応用）　など</span></td></tr><tr><th>質問サポート対応時間</th><td>Discordにて24時間対応（返信は12:00～22:00の間）<br>※質問期間：１年</td></tr><tr><th>サポート</th><td><span data-icon="circle" class="swl-inline-list">無期限のカリキュラム閲覧権</span><br><span data-icon="circle" class="swl-inline-list">実績掲載OKのコーディング練習素材</span><br><span data-icon="circle" class="swl-inline-list">プロのレッスン動画と回答例コード</span><br><span data-icon="circle" class="swl-inline-list">専用チャットコミュニティ参加</span><br><span data-icon="circle" class="swl-inline-list">Webセミナー勉強会に参加可能</span><br><span data-icon="circle" class="swl-inline-list">メンターによる1年間の学習サポート</span><br><br>※「転職支援コース：49,800円(税込)」や「営業支援コース：99,800円(税込)」を追加利用可能</td></tr><tr><th>公式サイト</th><td><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D"><strong>デイトラ　公式サイト</strong></a><span data-icon="LsExternalLink" data-id="10" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p>デイトラでは「実務レベルのスキルを徹底的に身につける環境」が用意されています。僕が個人的に「これはいいな！」と思ったのは、単なるサイト制作スキルだけではなく、サイトの表示スピード向上やセキュリティ対策まで学習できる点です。</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>特にWordpressサイトは、シェア率が高いこともあって<strong><span class="swl-inline-color has-swl-deep-01-color">国内外からの攻撃がめちゃくちゃ多い</span></strong>です。しっかりセキュリティ対策しないと冗談抜きでサイト改ざんや不正アクセスなどが起こりえます……。<br>（当サイトも毎日のように攻撃を受けています……ﾓｳﾔﾒﾃ…）</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ちなみに、デイトラでは<strong>初級編～実務編まで４段階にわかれて徐々にスキルアップしていくカリキュラム</strong>となっています。そして現役エンジニアやフリーランスのメンターへ１年間質問し放題のため、毎日の勉強時間さえしっかり確保できれば確実にスキルアップしていくことが可能です。</p>



<p class="u-mb-ctrl u-mb-30 is-style-icon_good">デイトラでは一般的なプログラミングスクールとは違ってカウンセリングこそ無いものの、<strong>講座の無料体験</strong>が可能なため、まずはそちらを利用してご自身に合っていそうか検討するのがよいかと思います。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="527" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1-1024x527.jpg" alt="" class="wp-image-14473" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1-1024x527.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1-300x154.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1-768x395.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1-1536x791.jpg 1536w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1.jpg 1638w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://www.daily-trial.com/web_site/">デイトラ</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong><strong> まずは無料体験を利用してみる </strong></strong></span><span class="swl-fz u-fz-s"><strong><strong> </strong></strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="5025eb5a"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">デイトラの無料体験に申し込む　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" width="1" height="1" style="border:none;" alt="" loading="lazy"></div>



<div class="wp-block-group has-border -border01 u-mb-ctrl u-mb-30"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<dl class="swell-block-faq -icon-circle is-style-default" data-q="fill-custom" data-a="col-custom">
<div class="swell-block-faq__item"><dt class="faq_q"><strong>どうしてデイトラは「業界最安級」なの？</strong></dt><dd class="faq_a">
<p>デイトラはもともと、SNSの企画から始まったスクールです。そのため、多くのユーザー・ファンから支持されています。結果、良い口コミがたくさん広がり、広告費用を抑えられていることで受講費用を安くすることに成功しています。</p>
</dd></div>
</dl>
</div></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h3 class="wp-block-heading" id="anc-webcoach"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール⑥</span></span>　<br><strong>WEBCOACH（ウェブコーチ）</strong></h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="488" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2-1024x488.jpg" alt="" class="wp-image-14966" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2-1024x488.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2-300x143.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2-768x366.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2-1536x732.jpg 1536w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-8-2.jpg 1888w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="https://www.webcoach.jp/">WEBCOACH公式サイト</a></figcaption></figure>



<p>WEBCOACHは<strong>20代～40代の女性向けのプログラミングスクール</strong>です。一般的なスクールとは少々異なり、47種類のWEBスキルと11種類のビジネススキルの中から自分が学びたいカリキュラムを自由に組み合わせ、それに合わせた学習期間（期間別コース）を選択する形式を採用しています。</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>

<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>WEBCOACH（ウェブコーチ）</td></tr><tr><th>PHPが学べるコース名</th><td><span data-icon="check" class="swl-inline-list">3か月コース</span><br><span data-icon="check" class="swl-inline-list">6か月コース</span><br><span data-icon="check" class="swl-inline-list">9か月コース</span><br>※学びたいカリキュラムを自由に組み合わせ、上記いずれかのコースで受講</td></tr><tr><th>受講形態</th><td>オンライン</td></tr><tr><th>入学金（税込）</th><td>50,000円<br>※<strong><span class="swl-marker mark_orange">今スグ割</span></strong>適用で免除</td></tr><tr><th>受講料金（税込）</th><td>&lt;&lt;&lt; <strong>3ヶ月コース</strong> &gt;&gt;&gt;<br>317,000円（<strong>リスキング補助金適用で<span class="swl-inline-color has-swl-deep-03-color">115,274円</span></strong>）<br><br>&lt;&lt;&lt; <strong>6ヶ月コース</strong> &gt;&gt;&gt;<br>425,600円（<strong>リスキング補助金適用で<span class="swl-inline-color has-swl-deep-03-color">154,765円</span></strong>）<br><br>&lt;&lt;&lt; <strong>9ヶ月コース</strong> &gt;&gt;&gt;<br>522,800円（<strong>リスキング補助金適用で<span class="swl-inline-color has-swl-deep-03-color">190,110円</span></strong>）<br><br>※分割払い可（料金は要問合せ）</td></tr><tr><th>受講期間（目安）</th><td>3か月、6か月、9か月のいずれか</td></tr><tr><th>PHP対応コースでの学習内容</th><td><strong>47種類のWEBスキル</strong>の中から学びたいカリキュラムを組み合わせて受講可能<br><br><span data-icon="check" class="swl-inline-list"><strong>WEBスキル</strong></span><br>　<span data-icon="dot" class="swl-inline-list">Webデザイン：Wordpress・Illustrator・Photoshop・Canva　など</span><br>　<span data-icon="dot" class="swl-inline-list">Webマーケティング：広告運用・SEO・KPO　など</span><br>　<span data-icon="dot" class="swl-inline-list">WEBサイト制作：HTML/CSS・jQuery・PHP　など</span><br>　<span data-icon="dot" class="swl-inline-list">動画編集：Premiere pro</span><br><br><span data-icon="check" class="swl-inline-list"><strong>11種類のビジネススキル</strong></span><br>　<span data-icon="dot" class="swl-inline-list">案件獲得概論</span><br>　<span data-icon="dot" class="swl-inline-list">クラウドソーシング</span><br>　<span data-icon="dot" class="swl-inline-list">提携企業獲得納品</span><br>　<span data-icon="dot" class="swl-inline-list">スキル　など</span></td></tr><tr><th>質問サポート対応時間</th><td>専属コーチに<strong><span class="swl-marker mark_orange">24時間質問し放題</span></strong><br>質問対応AI『WEBCOACH先生』</td></tr><tr><th>サポート</th><td>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">ポートフォリオ作成</span><br><span data-icon="circle" class="swl-inline-list">月2回のオンラインコーチング</span><br><span data-icon="circle" class="swl-inline-list">卒業後もカリキュラム見放題</span><br><span data-icon="circle" class="swl-inline-list"><strong>講師が<span class="swl-marker mark_orange">現役エンジニア</span></strong></span><br><span data-icon="circle" class="swl-inline-list">専属コーチへのキャリア相談</span><br><br>&lt;&lt;&lt; <strong>転職サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">キャリアアドバイザーとの自己分析</span><br><span data-icon="circle" class="swl-inline-list">書類作成サポート</span><br><span data-icon="circle" class="swl-inline-list">チャットサポート</span><br><span data-icon="circle" class="swl-inline-list">面接対策</span><br><br>&lt;&lt;&lt; <strong>副業・フリーランスサポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">案件獲得サポート（５件まで）</span><br><br>&lt;&lt;&lt; <strong>料金サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list"><strong><span class="swl-marker mark_orange">リスキング補助金：受講料最大70%OFF</span></strong></span><br><span data-icon="circle" class="swl-inline-list">今スグ割：入会金50,000円OFF<br><span class="swl-inline-color has-swl-deep-01-color"><span style="text-decoration: underline;">※併用は不可</span></span></span><br><span data-icon="circle" class="swl-inline-list">14日間全額返金保証</span></td></tr><tr><th>公式サイト</th><td><strong><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957" target="_blank" rel="noreferrer noopener">WEBCOACH　公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></strong><span data-icon="LsExternalLink" data-id="15" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p>14日間全額返金保証がついているプログラミングスクールは珍しく、それだけサービスに自信があるということです。「自分には合わないかも……」という状況だけではなく、「急に忙しくなってしまった……」というときでも保証対象になるため、その点も安心できるのではないでしょうか。</p>



<p class="u-mb-ctrl u-mb-30">また、専属コーチの中には<strong><span class="swl-marker mark_orange">子育てとWebフリーランスを両立している</span></strong>方もいらっしゃるとのことで、卒業生からも「未来の自分の目標や理想像となる存在だった」といった声が多いです。<span class="swl-fz u-fz-xs">（参考：<a href="https://www.webcoach.jp/customer/">WEBCOACH｜受講生の声</a>）</span></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>子育てをしながらWeb業界で活躍されている方に専属コーチをしてもらえるのは、女性向けスクールであるWEBCOACHならではの強みですね！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-icon_pen u-mb-ctrl u-mb-30">WEBCOACHでは<strong>90分の</strong><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><strong>無料カウンセリング</strong></a><strong><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></strong>を実施しています。<strong>今スグ割</strong>を利用したい方は、カウンセリングの利用が必須のためお気を付けください。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="373" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1024x373.png" alt="" class="wp-image-14480" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-1024x373.png 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-300x109.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4-768x280.png 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-4.png 1044w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://www.webcoach.jp/">WEBCOACH</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong><strong> 参加者満足度95%‼プロになんでも相談できる90分 </strong></strong></span><span class="swl-fz u-fz-s"><strong><strong> </strong></strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="965a25eb"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">WEBCOACHの無料カウンセリングに申し込む　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h3 class="wp-block-heading" id="anc-internet-academy"><span style="color:#8c8c8c" class="swl-inline-color"><span style="font-size:0.75rem" class="swl-fz">PHPを学ぶのにおすすめのプログラミングスクール⑦</span></span>　<br><strong>INTERNET ACADEMY（インターネットアカデミー）</strong></h3>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="481" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy-1024x481.jpg" alt="INTERNET ACADEMY公式TOPページFV" class="wp-image-14650" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy-1024x481.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy-300x141.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy-768x361.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy-1536x721.jpg 1536w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/internet-academy.jpg 1899w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">INTERNET ACADEMY公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></figcaption></figure>
</div>


<p>７つ目にご紹介するPHPを学べるプログラミングスクールは、独自にWeb専門人材サービス会社も運営しているINTERNET ACADEMY（インターネットアカデミー）です。</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" data-cell1-fixed="sp" class="wp-block-table is-all-centered--va u-mb-ctrl u-mb-0"><table style="--table-width:600px;--swl-cell1-width:260px;" class="has-fixed-layout"><tbody><tr><th>スクール名</th><td>INTERNET ACADEMY（インターネットアカデミー）</td></tr><tr><th>PHPが学べるコース名</th><td><span data-icon="check" class="swl-inline-list">プログラマーコース（PHP講座）</span><br><span data-icon="check" class="swl-inline-list">Webサービス開発者コース</span><br><span data-icon="check" class="swl-inline-list">ITエンジニア総合コース</span></td></tr><tr><th>受講形態</th><td>オンライン/通学（組み合わせ可能）</td></tr><tr><th>入学金（税込）</th><td>要確認</td></tr><tr><th>受講料金（税込）</th><td>&lt;&lt;&lt; <strong>プログラマーコース（PHP講座）</strong> &gt;&gt;&gt;<br>261,360円<br>※分割：6,600円/月<br>※「プログラマー入門コース（228,800円）」と組み合わせることで<strong><span class="swl-marker mark_orange">教育訓練給付制度</span></strong>が利用可能<br><br>&lt;&lt;&lt; <strong>Webサービス開発者コース</strong> &gt;&gt;&gt;<br>1,290,575円<br>※分割：36,190円/月<br><br>&lt;&lt;&lt; <strong>ITエンジニア総合コース</strong> &gt;&gt;&gt;<br>951,896円<br>※分割：26,400円/月</td></tr><tr><th>受講期間（目安）</th><td>&lt;&lt;&lt; <strong>プログラマーコース（PHP講座）</strong> &gt;&gt;&gt;<br>※期間は要確認（学習目安16～32時間）<br><br>&lt;&lt;&lt; <strong>Webサービス開発者コース</strong> &gt;&gt;&gt;<br>10～12ヶ月（学習目安124～248時間）<br><br>&lt;&lt;&lt; <strong>ITエンジニア総合コース</strong> &gt;&gt;&gt;<br>10～12ヶ月（学習目安88～176時間）</td></tr><tr><th>PHP対応コースでの学習内容</th><td>&lt;&lt;&lt; <strong>プログラマーコース（PHP講座）</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">セキュリティ</span><br><span data-icon="check" class="swl-inline-list">データベース</span><br><span data-icon="check" class="swl-inline-list">WordPress　など</span><br><br>&lt;&lt;&lt; <strong>Webサービス開発者コース</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">Javascript</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">Linux</span><br><span data-icon="check" class="swl-inline-list">Python</span><br><span data-icon="check" class="swl-inline-list">AIプログラミング</span><br><span data-icon="check" class="swl-inline-list">セキュリティ</span><br><span data-icon="check" class="swl-inline-list">データベース　など</span><br><br>&lt;&lt;&lt; <strong>ITエンジニア総合コース</strong> &gt;&gt;&gt;<br><span data-icon="check" class="swl-inline-list">HTML/CSS</span><br><span data-icon="check" class="swl-inline-list">Javascript</span><br><span data-icon="check" class="swl-inline-list">PHP</span><br><span data-icon="check" class="swl-inline-list">Linux</span><br><span data-icon="check" class="swl-inline-list">Java</span><br><span data-icon="check" class="swl-inline-list">セキュリティ</span><br><span data-icon="check" class="swl-inline-list">データベース　など</span></td></tr><tr><th>質問サポート対応時間</th><td>オンライン質問対応<br>※サポート時間は要確認</td></tr><tr><th>サポート</th><td>&lt;&lt;&lt; <strong>学習サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">マンツーマン対応</span><br><span data-icon="circle" class="swl-inline-list">チャット質問サービス</span><br><span data-icon="circle" class="swl-inline-list">各種セミナーと交流会</span><br><span data-icon="circle" class="swl-inline-list">ラーニングスペース利用</span><br><span data-icon="circle" class="swl-inline-list">卒業後も利用可能なテキスト</span><br><span data-icon="circle" class="swl-inline-list"><strong><span class="swl-marker mark_orange">講師が現役エンジニア</span></strong></span><br><br>&lt;&lt;&lt; <strong>転職サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list">Web専門の求人情報</span><br><span data-icon="circle" class="swl-inline-list">キャリアチェンジサポート</span><br><span data-icon="circle" class="swl-inline-list">Web専門人材サービス会社ウェブスタッフを運営</span><br><br>&lt;&lt;&lt; <strong>料金サポート</strong> &gt;&gt;&gt;<br><span data-icon="circle" class="swl-inline-list"><strong><span class="swl-marker mark_orange">教育訓練給付制度：受講料最大80%OFF</span></strong></span></td></tr><tr><th>公式サイト</th><td><strong><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">INTERNET ACADEMY　公式サイト</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></strong><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDQgMkgzMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJoOS4yTDI0IDIxLjJjLS44LjgtLjggMiAwIDIuOHMyIC44IDIuOCAwTDQyIDguOFYxOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PHBhdGggZD0iTTQxIDI3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMlYxMWMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg5Yy0zLjMgMC02IDIuNy02IDZ2MjhjMCAzLjMgMi43IDYgNiA2aDI4YzMuMyAwIDYtMi43IDYtNlYyOWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsExternalLink" data-id="15" aria-hidden="true" class="swl-inline-icon"> </span></td></tr></tbody></table></figure>



<p class="u-mb-ctrl u-mb-30"><span class="swl-fz u-fz-s">※一部のサポートはコース・追加オプションによって内容が異なる場合があります。</span></p>



<p>INTERNET ACADEMYはオンラインでも通学でもどちらでも好きな方で利用可能なプログラミングスクールです。</p>



<p>今回ご紹介しているコースは３つですが、ご自身が学びたいコースを組み合わせることで柔軟なカリキュラムを受講することができます。（例：「プログラマー入門コース」 ＋ 「プログラマーコースPHP講座」）</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>さらに、「プログラマーコース」では３つの講座が用意されており、そのひとつが「PHP講座」です。正直、この講座だけだとWebアプリで必要なスキルを網羅的に学ぶことができないため、実際に利用する際は「プログラマー入門コース」と併用することをおすすめします。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-icon_good">上記の「プログラマー入門コース」 ＋ 「プログラマーコースPHP講座」は<strong>教育訓練給付制度の対象</strong>となっているため、<strong><span class="swl-marker mark_orange">費用を抑えてPHPでWebエンジニアを目指したい方にピッタリ</span></strong>の組み合わせです。</p>



<p>またINTERNET ACADEMYは、独自にWeb専門人材サービス会社である「ウェブスタッフ」を運営しています。そのため、受講後の転職先についても相談しやすい環境と言えるでしょう。</p>



<p>まずは<a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231">無料カウンセリング</a><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231">で自分にどんなコースや組み合わせが合っているのか、他の卒業生の転職先などについて話を聞いてみるのもいいでしょう。</p>


<div class="wp-block-image is-style-shadow size_s u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="1001" height="526" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-7.png" alt="" class="wp-image-14644" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-7.png 1001w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-7-300x158.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2025/03/image-7-768x404.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /><figcaption class="wp-element-caption"><span class="swl-fz u-fz-s">画像引用元：<a href="https://www.internetacademy.jp/">INTERNET ACADEMY</a></span></figcaption></figure>
</div>


<p class="has-text-align-center u-mb-ctrl u-mb-0"><strong><span class="swl-fz u-fz-l">＼</span><span class="swl-fz u-fz-s"><strong><strong> 自分に合ったコースがきっと見つかる‼ </strong></strong></span><span class="swl-fz u-fz-s"><strong><strong> </strong></strong></span><span class="swl-fz u-fz-l">／</span></strong></p>



<div class="swell-block-button -html green_ -size-l is-style-btn_shiny u-mb-ctrl u-mb-40" data-id="7319c0f3"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc="">INTERNET ACADEMYの無料カウンセリングを受ける　&gt;&gt;</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" width="1" height="1" style="border:none;" loading="lazy"></div>



<p><a href="#anc-school-index"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGQ9Ik0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyek0zODUgMjE1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNzcuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasCircleArrowUp" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span>目次へ戻る</a></p>



<h2 class="wp-block-heading">PHPをプログラミングスクールで学ぶ４つのメリット</h2>



<p>冒頭でもお伝えしたように、僕はPHPを独学で習得することができました。</p>



<p>しかし、振り返ってみれば累計学習期間は１年以上にもなり、モチベーションが保てず間を空けてしまった期間もあるため、実際に習得したと言えるラインに到達できるまでには２年半～３年ほどかかっています。</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>いま現在PHPでWeb開発のお仕事をしたいと考えているのであれば、<strong>プログラミングスクールへ通って転職サポートなどを受けつつ仕事につなげる</strong>のが最短ルートです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>また、僕自身が独学でPHPを学習してきたがゆえに、<strong>プログラミングスクールを利用するメリット</strong>が明確に見えているため、本章ではそちらをお伝えしたいと思います。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span data-icon="LsThumbUp" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNCAxOGg0YzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjIwYzAtMS4xLjktMiAyLTJ6TTQxIDE0SDI3bC43LTcuMWMuMi0xLjgtLjYtMy41LTItNC42LS45LS43LTIuMi0uNS0yLjkuNUwxNS4zIDE0Yy0uOSAxLjMtMS4zIDIuOS0xLjMgNC40VjM4YzAgMi4yIDEuOCA0IDQgNGgyMC44YzEuOSAwIDMuNS0xLjMgMy45LTMuMWwzLTEzLjZjLjItLjkuMy0xLjcuMy0yLjZWMTljMC0yLjgtMi4yLTUtNS01eiI+PC9wYXRoPjwvc3ZnPg==)" aria-hidden="true" class="swl-inline-icon"> </span><strong> PHPをプログラミングスクールで学習するメリット</strong></span></div><div class="cap_box_content">
<dl class="swell-block-dl is-style-border">
<dt class="swell-block-dl__dt"><strong>１．初学者でも学習ルートに迷わず効率的に学習できる</strong></dt>



<dd class="swell-block-dl__dd">
<p>独学だと無駄な学習をしてしまいがちです（実体験）が、スクールを利用すれば必要なスキルを<strong>効率的に学習</strong>できます。</p>
</dd>



<dt class="swell-block-dl__dt"><strong>２．不明点が出たときに質問できる相手がいる</strong></dt>



<dd class="swell-block-dl__dd">
<p>独学で不明点が出たときの質問相手は検索エンジンです。いまでこそAIがあるため以前よりは効率的に不明点を解消しやすいかもしれません。しかし、AIは間違った回答を返してくることもそれなりにあるため、その判断が初学者には難しいというデメリットがあります。</p>



<p>当記事でご紹介しているプログラミングスクールでは現役エンジニアがメンターとして付いてくれるため、わからないことがあったときには、実務経験にもとづく明確な回答を得ることが可能です。</p>
</dd>



<dt class="swell-block-dl__dt"><strong>３．モチベーションが維持できる</strong></dt>



<dd class="swell-block-dl__dd">
<p>独学でもっとも脅威なのが「モチベーションの低下」です。スクールを利用すれば、その心配もかなり低減され、より短期間でPHPの習得が可能です。</p>
</dd>



<dt class="swell-block-dl__dt"><strong>４．転職・案件獲得につなげやすい</strong></dt>



<dd class="swell-block-dl__dd">
<p>転職・案件獲得サポートのあるスクールならば、PHPを習得したあともスムーズに次のキャリアへ進むことが可能です。これが独学とのもっとも大きな違いです。</p>
</dd>
</dl>
</div></div>



<p>プログラミングスクールはどうしてもお金がかかるためハードルを感じるかと思います。しかし、適切なスクールを見つけることができれば、それ以上のリターンを得ることが可能です。</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>適切なプログラミングスクールを選択するためにも、まずはしっかりとご自身の<strong>目的を明確にする</strong>ことが大切です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">PHPを習得したあとのキャリアプラン</h2>



<p>PHPを習得したあとのキャリアプランには、大きく分けて<strong>３つの方向性</strong>があります。</p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>企業へ就職・転職する</li>



<li>フリーランスとして活動する</li>



<li>副業で案件をこなす</li>
</ul>
</div></div>



<p>WordPressは世界規模で使用されているCMSですが、PHPを習得することでそのカスタマイズやテーマ開発者への道が拓けます。</p>



<p class="is-style-icon_info">PHPを習得しなくてもWordpressの既存テーマでWebサイト制作すること自体は可能です。しかし、実案件ではオリジナルテーマ制作を求められることがほとんどのため、PHPを扱えることが望ましいです。</p>



<p>当記事でご紹介したプログラミングスクールのおよそ半分ほどには、WordpressによるWebサイト制作スキルを学ぶことができるコースが用意されています。</p>



<p>今後、ご自身が「Webアプリ開発」と「Webサイト制作」のどちらを仕事にしたいかによって学ぶべきカリキュラムは二分化するため、まずはそこを明確にしましょう。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><strong>ちなみに……</strong></p>



<div class="wp-block-group is-style-bg_stripe"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>Webアプリ開発 …… 就職・転職</li>



<li>WordPress …… 就職・転職・フリーランス・副業</li>
</ul>
</div></div>



<p>プログラミング初心者の方がPHPやWordPressを習得したあとに向いているキャリアはおおよそ上記のようになります。</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>Webアプリ開発の場合、いきなりフリーランスや副業案件をこなすのは決して不可能ではありません。しかし、非常に「狭き門」だということはよく理解しておきましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">PHPが学べるプログラミングスクールを選ぶときの注意点</h2>



<p>PHPが学べるプログラミングスクールを選ぶ上でのポイントは、記事の最初の方でお伝えしました。</p>



<p>それとは別に、<strong><span class="swl-marker mark_orange">スクールを選ぶときの注意点</span></strong>があります。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col3"><div class="cap_box_ttl"><span><span data-icon="LsAlert" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDcgMzcuOSAyNy41IDQuMWMtLjctMS4zLTItMi0zLjUtMnMtMi43LjctMy41IDJMMSAzNy45Yy0uNyAxLjMtLjcgMi43IDAgNCAuNyAxLjMgMiAyIDMuNSAyaDM5LjFjMS40IDAgMi43LS43IDMuNS0yIC42LTEuMy42LTIuNy0uMS00ek0yMS41IDE3LjVjMC0xLjQgMS4xLTIuNSAyLjUtMi41czIuNSAxLjEgMi41IDIuNXYxMGMwIDEuNC0xLjEgMi41LTIuNSAyLjVzLTIuNS0xLjEtMi41LTIuNXYtMTB6TTI0IDM4Yy0xLjcgMC0zLTEuMy0zLTNzMS4zLTMgMy0zIDMgMS4zIDMgMy0xLjMgMy0zIDN6Ij48L3BhdGg+PC9zdmc+)" aria-hidden="true" class="swl-inline-icon"> </span><strong> PHPが学べるプログラミングスクールを選ぶときの注意点</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>本当に学ぶべき言語がPHPなのかを冷静に判断する</li>



<li>レッスンスケジュールの柔軟性</li>



<li>サポートサービスの利用条件</li>



<li>中途退会と受講期間延長が可能か</li>



<li>担当講師とカリキュラムの変更は可能か</li>



<li>無料スクールを利用する場合は「条件」をしっかり確認する</li>
</ul>
</div></div>



<p class="is-style-big_icon_caution">当記事でご紹介しているプログラミングスクールはどれも<strong>無料カウンセリング・体験レッスン</strong>が用意されているため、まずはそちらを利用して、<strong><span class="swl-marker mark_orange">各注意点についてしっかりと事前確認</span></strong>をしましょう。</p>



<h3 class="wp-block-heading" id="レッスンスケジュールの柔軟性">本当に学ぶべき言語がPHPなのかを冷静に判断する</h3>



<p>一言にプログラミングと言っても、その種類は様々で、それぞれ得意なことや活躍分野が異なります。</p>



<p>PHPはその中でも「Webアプリ開発」や「動的WebサイトやWordPress」で使用されるプログラミング言語です。</p>



<p>そして、学習するべきプログラミング言語は「どんなシステム（アプリなど）を開発したいのか」によって変わってきます。</p>



<p>PHPはまだまだWeb開発やWeb制作で大活躍中のプログラミング言語です。そのため、学んで損になることは無いでしょう。</p>



<p class="is-style-big_icon_check">しかし、もし明確に「これ！」という開発目標があるのであれば、果たしてPHPを学ぶことが適切なのかを冷静に見極めることが大切です。</p>



<h3 class="wp-block-heading" id="レッスンスケジュールの柔軟性">レッスンスケジュールの柔軟性</h3>



<p>プログラミングスクールを利用するにあたり、レッスンの日程変更やキャンセルの可否について、事前に確認するようにしましょう。</p>



<p>スクールによって、レッスン変更に関する規定は異なります。例えば、あるスクールでは「2日前までの変更可能」であったり、一方ではそもそも「変更不可」というケースも……。</p>



<p>生活をしていれば様々な事情からスケジュール変更を余儀なくされる可能性があります。そのため、<strong>スケジュール変更が可能かどうか</strong>、可能な場合は、<strong>変更手続きの期限</strong>についても確認することをおすすめします。</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>また、仮にスケジュール変更が可能だったとしても、追加条件が伴う場合があるため、<strong>以下の</strong><strong>点についても事前に確認</strong>できると安心です。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>追加費用の発生</li>



<li>受講可能日数への影響</li>



<li>サポートサービスへの影響</li>
</ul>
</div></div>



<h3 class="wp-block-heading" id="サポートサービスの利用条件">サポートサービスの利用条件</h3>



<p>学習サポートや支援サービスの利用条件は、あらかじめ詳細に確認するようにしましょう。具体的には、<strong>利用可能なコース</strong>、<strong>時間帯</strong>、<strong>回数制限</strong>などです。</p>



<p>特に、オンラインQ&amp;Aやメンタリングサービスを活用する場合は、事前に「どういった条件で利用できるのか」をきちんと確認しましょう。</p>



<p>こうした学習サービスが適切に利用できないと、学習効率の低下やモチベーションの維持に影響する可能性があります。</p>



<h3 class="wp-block-heading" id="中途退会と受講期間延長の可能性">中途退会と受講期間延長が可能か</h3>



<p>中途退会や受講期間延長が可能かどうかを確認することも大切です。</p>



<p>スクールによって、これらの条件は異なります。例えば、「いつでも退会可能」、「開始1ヶ月以内のみ退会可能」、「延長申請は1ヶ月前必須」といった規定が設けられています。</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>また、以下のような変更に伴う条件についてもあわせて確認をしておくと安心です。</p>



<ul class="wp-block-list is-style-triangle_list">
<li>追加費用の発生</li>



<li>違約金の有無</li>



<li>サポートサービスへの影響</li>
</ul>



<h3 class="wp-block-heading" id="担当講師とカリキュラムの変更可能性">担当講師とカリキュラムの変更は可能か</h3>



<p>担当講師やコース内容が途中で変更できるかどうかも事前に確認しましょう。</p>



<p>相手は経験豊富なプロのため、そう多くはないと思いますが、お互い人間である以上、担当講師との相性が合わないケースも考えられます。</p>



<p>そのような状況になってしまうと、最悪の場合、学習効率やモチベーションに影響が出て、せっかく高いお金を払って利用しているのに思ったようにスキルを身につけられずにサポート期間が終わってしまう可能性も……。</p>



<p>そうしたとき、担当講師が変更できるのかどうかをあらかじめ知っておくだけでも気の持ちようが変わってきます。</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>



<p>また、カリキュラムについても、実際に受講し始めて</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>また、前節「中途退会と受講期間延長が可能か」と同様、変更に伴う以下のような条件についてもしっかり確認をしましょう。</p>



<ul class="wp-block-list is-style-triangle_list">
<li>追加費用の発生</li>



<li>違約金の有無</li>



<li>サポートサービスへの影響</li>
</ul>



<h3 class="wp-block-heading">無料スクールを利用する場合は「条件」をしっかり確認する</h3>



<p>当記事ではご紹介していませんが、プログラミングスクールの中には「無料」のものもあります。</p>



<p>プログラミングスクールなのにも関わらず無料で利用できるのには当然理由があります。</p>



<p>よくあるのが、「提携企業へ就職することが必須条件」です。</p>



<p>つまり、スクール卒業生を紹介する代わりに紹介料をもらうことで経営しているパターンです。</p>



<p>見方を変えると、<strong>そのスクールの卒業生の進路が非常に限られている</strong>ということです。</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>ほかにも「無料」である理由はスクールによって様々ですが、無料スクールを利用するのであれば、<strong><span class="swl-inline-color has-swl-deep-01-color"><span class="swl-marker mark_orange">必ず卒業条件などを事前にしっかりと確認するようにしましょう！</span></span></strong></p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">どのプログラミングスクールを選べばよいか迷っている方へ</h2>



<p>ここまで「プログラミングスクールを選ぶポイント」や「おすすめのスクール」をご紹介してきました。</p>



<p>しかし、それでもどのプログラミングスクールを選べばよいか迷っている方も多いのではないでしょうか。</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>もしそうであれば、<strong><span class="swl-marker mark_orange">とりあえず無料カウンセリングを受けてみる</span></strong>のもひとつの選択肢です！</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>（万が一、無理な勧誘や脅し文句を言ってきたら、「ここはヤバイ！」と判断して切り捨ててしまいましょう）</p>



<p>ご紹介したスクールの中から候補を選び、それらの無料カウンセリングを受けて比較することが、時間や労力はかかるものの、もっとも堅実で間違いがありません。</p>



<p>多くのスクールでは、無料カウンセリング段階でキャリア相談にも乗ってくれます。そのため、「今後プログラミングを学んでみたいけど具体的なイメージがわかない……」という方でも気軽に利用できます。</p>



<p class="is-style-icon_good">スクール側としても、しっかり納得してもらった上で受講してもらった方が良い評価をもらえやすいし、次につながるため、お互いにとってWinWinです。</p>



<p>これは僕個人の考えになってしまいますが、多くのお金や時間がかかるからこそ、下調べは丁寧に進めるのが吉です。その方が、最終的に納得のいく形でスクールを卒業して、次のキャリアへと進むことができるのではないかと思います。</p>



<p>この記事が、読者の皆様にとってプログラミングスクールを選ぶ上で少しでもお役に立ったなら何よりです。</p>



<p class="has-text-align-center is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMTAgM2gyOGMxLjEgMCAyIC45IDIgMnYzOS42YzAgLjktMS4xIDEuMy0xLjcuN0wyNCAzMSA5LjcgNDUuM2MtLjYuNi0xLjcuMi0xLjctLjdWNWMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsBookmark" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span> <strong>今回ご紹介したプログラミングスクールの早見表</strong><br><span style="text-decoration: underline;"><span class="swl-fz u-fz-xs">※スクール名のリンクをクリックするとページ内遷移します。</span></span></p>



<div class="swell-block-tab is-style-bb" data-width-pc="auto" data-width-sp="auto"><ul class="c-tabList" role="tablist"><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="true" aria-controls="tab-3fa3c34c-0" data-onclick="tabControl"><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>すべてのスクール</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-3fa3c34c-1" data-onclick="tabControl">Webエンジニア向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-3fa3c34c-2" data-onclick="tabControl">Webサイト制作向け</button></li><li class="c-tabList__item" role="presentation"><button role="tab" class="c-tabList__button" aria-selected="false" aria-controls="tab-3fa3c34c-3" data-onclick="tabControl">給付金制度あり</button></li></ul><div class="c-tabBody">
<div id="tab-3fa3c34c-0" class="c-tabBody__item" aria-hidden="false"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-3fa3c34c-1" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>



<div id="tab-3fa3c34c-2" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-ninja-code">忍者CODE</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="###">公式サイト<img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462422&amp;p_id=5816&amp;pc_id=16120&amp;pl_id=74540"></a></span></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>98,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応の<br>チャットサポート<br>※無期限・無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-day-tra">デイトラ</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100&amp;url=https%3A%2F%2Fwww.daily-trial.com%3Frd_code%3D%7B%7BCODE%7D%7D">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937545&amp;p_id=3554&amp;pc_id=8575&amp;pl_id=50100" alt=""></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>129,800円</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>（返信は12:00～22:00の間）<br>※質問期間：１年</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア・フリーランス</td><td>オンライン</td><td>114日<br>※サポート：1年間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr></tbody></table></figure>
</div>



<div id="tab-3fa3c34c-3" class="c-tabBody__item" aria-hidden="true"><div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" data-cell1-fixed="both" class="wp-block-table is-thead-centered is-all-centered--va"><table style="--table-width:1800px;--swl-cell1-width:180px;font-size:14px;" class="has-fixed-layout"><thead style="--thead-color--bg:var(--color_pale04);--thead-color--txt:var(--swl-text_color--black)"><tr><th class="has-text-align-center" data-align="center">スクール名</th><th>対応業種</th><th>給付金割引</th><th>一括料金</th><th>転職支援</th><th>フリーランス支援</th><th>副業支援</th><th>質問/相談サポート</th><th>担当講師</th><th>受講形式</th><th>受講期間・時間</th></tr></thead><tbody><tr><th class="has-text-align-center" data-align="center"><a href="#anc-samurai-engineer">侍エンジニア</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4396594&amp;p_id=1421&amp;pc_id=2473&amp;pl_id=21248">公式サイト</a></span></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>66,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応<br>※回数無制限</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン<br>（マンツーマン）</td><td>250～300時間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-dmm-webcamp">DMM WEBCAMP</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4462444&amp;p_id=1000&amp;pc_id=1380&amp;pl_id=56030"></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>169,800円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間対応</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>1～4ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-codecamp">CodeCamp</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4670773&amp;p_id=936&amp;pc_id=1196&amp;pl_id=22852"></th><td>Webサイト制作<br>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>16,5000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>7時〜23時40分<br>※AIチャットは24時間使用可能</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>2～6ヶ月間</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-webcoach">WEBCOACH</a><br><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4937568&amp;p_id=5266&amp;pc_id=14299&amp;pl_id=68957"></th><td>Webサイト制作</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>317,000円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>24時間質問<br>※回数無制限<br>※質問対応AIあり</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン</td><td>3～6ヶ月</td></tr><tr><th class="has-text-align-center" data-align="center"><a href="#anc-internet-academy">INTERNET ACADEMY</a><br><span class="swl-inline-btn is-style-btn_normal green_"><a href="//af.moshimo.com/af/c/click?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231&amp;url=https%3A%2F%2Fwww.internetacademy.jp%2F%3Futm_sorce%3Daffiliate%26utm_medium%3Dmoshimo%26utm_campaign%3Dia%26utm_term%3Dia">公式サイト</a></span><img decoding="async" width="1" height="1" src="//i.moshimo.com/af/i/impression?a_id=4301237&amp;p_id=3639&amp;pc_id=8851&amp;pl_id=51231" alt=""></th><td>Webエンジニア</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td>261,360円～</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="line" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>オンライン質問</td><td data-has-cell-bg="1" data-has-cell-icon="l-bg"><span data-icon="circle" data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>現役エンジニア</td><td>オンライン/通学</td><td>最大1年間</td></tr></tbody></table></figure>
</div>
</div></div>



<h2 class="wp-block-heading"><strong>最後に……今すぐ行動を起こすべき理由</strong></h2>



<p>PHPエンジニアの需要は年々高まっており、適切なスキルを身につければ安定した収入を得ることができます。</p>



<p>しかし、独学で挫折してしまう人が多いのも事実です。</p>



<p><strong>この記事で紹介したスクールの無料カウンセリングを今すぐ予約して、あなたのキャリアの第一歩を踏み出してみませんか？</strong></p>



<p>無料で相談できる機会を逃すのはもったいないです。</p>



<div class="swell-block-capbox cap_box" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNCAxOGg0YzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjIwYzAtMS4xLjktMiAyLTJ6TTQxIDE0SDI3bC43LTcuMWMuMi0xLjgtLjYtMy41LTItNC42LS45LS43LTIuMi0uNS0yLjkuNUwxNS4zIDE0Yy0uOSAxLjMtMS4zIDIuOS0xLjMgNC40VjM4YzAgMi4yIDEuOCA0IDQgNGgyMC44YzEuOSAwIDMuNS0xLjMgMy45LTMuMWwzLTEzLjZjLjItLjkuMy0xLjcuMy0yLjZWMTljMC0yLjgtMi4yLTUtNS01eiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="LsThumbUp" data-id="0" aria-hidden="true" class="swl-inline-icon">  </span><strong>今すぐできるアクション</strong></span></div><div class="cap_box_content">
<p>この記事で紹介した<strong>7つのスクールすべてが無料カウンセリングを提供</strong>しています。</p>



<p>あなたの目標や予算に合わせて、気になるスクールの無料カウンセリングを予約してみてください。</p>



<p>複数のスクールの無料カウンセリングを受けることで、より良い選択ができます。</p>
</div></div>


<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>どのスクールが良いか迷ったら、<span class="swl-marker mark_yellow">複数のスクールの無料カウンセリングを受けて比較してみる</span>ことをおすすめします。無料なので、まずは相談してみてください。</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>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="is-style-balloon_box"><strong>関連記事</strong></p>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/alone-php-study/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPはこうして習得した！約１年間の勉強内容【プログラミング独学】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/web-sj-pro/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【独学】Web制作で副業｜ココナラで初案件を獲得するまでの全工程</span>
			</a>
		</div>


<ul class="wp-block-list"></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/school-php-and-wp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】エックスサーバーへデプロイする方法【初心者でも簡単！】</title>
		<link>https://kekenta-it-blog.com/php-deploy-xserver-for-zip/</link>
					<comments>https://kekenta-it-blog.com/php-deploy-xserver-for-zip/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 24 Feb 2025 05:55:42 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[エックスサーバー]]></category>
		<category><![CDATA[デプロイ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=12817</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/eye-catch__php-deploy-xserver-for-zip__12817-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では PHPで作成したWebページやアプリをエックスサーバーへデプロイするする方法 を解説します。 初めてPHPによる制作物をデプロイするという方は、もしかすると と不安に思っているかもしれません。 ですが、安心 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/eye-catch__php-deploy-xserver-for-zip__12817-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">PHPで作成したWebページやアプリを</span></strong><br><strong><span class="swl-marker mark_yellow">エックスサーバーへデプロイするする方法</span></strong></p>



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



<p><strong>初めてPHPによる制作物をデプロイする</strong>という方は、もしかすると</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>ですが、<strong>安心してください</strong>。</p>



<p class="is-style-icon_good">エックスサーバーのようなレンタルサーバーを利用すれば、PHPで開発したWebアプリも比較的簡単にデプロイが可能です。</p>



<p><strong>この記事の手順に沿ってひとつひとつ作業を進めることで</strong>、<strong>確実に<span class="swl-marker mark_yellow">デプロイを体験できる</span></strong>ので、ぜひ参考にしていただければと思います。</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="u-mb-ctrl u-mb-20">もしもまだ<strong><span class="swl-marker mark_blue">エックスサーバーの契約がお済でない場合</span></strong>は、まずはそちらを完了していただければと思います。</p>



<p class="u-mb-ctrl u-mb-20"><a href="https://www.xserver.ne.jp/?referral_token=62883960654ded775a586">エックスサーバー</a>では<strong>すべてのプランで<span class="swl-inline-color has-swl-deep-03-color">「10日間」の無料期間</span></strong>が用意されています。</p>



<p class="u-mb-ctrl u-mb-20">また、毎月なんらかの<strong><span class="swl-inline-color has-swl-deep-03-color">割引特典</span></strong>が付いてくるため、本契約するされる際は、損をしないためにも<a href="https://www.xserver.ne.jp/?referral_token=62883960654ded775a586">公式ページ</a>でしっかり詳細を確認することをおすすめします。</p>



<p class="u-mb-ctrl u-mb-20">さらに、以下のボタンから<strong>30日以上の契約期間でお申し込み</strong>をすると<strong>友達紹介プログラム</strong>により<strong><span class="swl-inline-color has-swl-deep-03-color">初回の利用料金に20％割引が適用</span></strong>されます。</p>



<div class="swell-block-button green_ is-style-btn_normal u-mb-ctrl u-mb-20" data-id="a244458d"><a href="https://www.xserver.ne.jp/?referral_token=62883960654ded775a586" class="swell-block-button__link" data-has-icon="1"><span>エックスサーバー公式サイト</span><svg class="__icon -right" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 48 48"><path d="m33 25.1-13.1 13c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8L28.4 24 17.1 12.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l13.1 13c.6.6.6 1.6 0 2.2z"></path></svg></a></div>


<div class="swell-block-balloon u-mb-ctrl u-mb-20"><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>何はともあれ、デプロイに挑戦するのであれば<strong><span class="swl-marker mark_yellow">サーバーの用意は必須</span></strong>なので、まずはお試し期間をご活用いただくのも良いかと思います！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large u-lb-off size_xs"><a href="https://www.xserver.ne.jp/?referral_token=62883960654ded775a586"><img decoding="async" width="1024" height="648" src="https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-1024x648.jpg" alt="エックスサーバーバナー" class="wp-image-6217" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-1024x648.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-300x190.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-768x486.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-1536x972.jpg 1536w, https://kekenta-it-blog.com/wp-content/uploads/2024/04/x-server-banner-2048x1296.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div></div>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">デプロイの主な手順</h2>



<p>ここからは「エックスサーバーと契約済み」という前提で解説を進めていきます。</p>



<p><strong><span class="swl-marker mark_yellow">PHPをエックスサーバーへデプロイする主な流れ</span></strong>は以下のとおりです。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><strong style="font-weight: bold;"><strong>【手順】</strong>PHPをエックスサーバーへデプロイする</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>データベースを準備する</li>



<li>データベース接続情報を設定する</li>



<li>PHPファイルをエックスサーバーへアップロードする</li>



<li>ブラウザで表示確認をする</li>
</ul>
</div></div>


<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>この工程では、いわゆる<strong>環境ファイル</strong>を用意します。その際、ComposerというPHPのライブラリ管理ツールを利用して<strong>環境ファイルを安全に扱えるようにするためのライブラリ</strong>を導入します。</p>



<p>初めてComposerに触れる方やコマンドを使ったことがないという方にとっては、慣れない内容かもしれません。</p>



<p>しかし、今後もPHPでのアプリ開発を行う場合、<strong>Composerやコマンドは必須スキル</strong>になるので、今回を機に「こんなものがあるんだ」と、学びのキッカケになれば幸いです。</p>



<p class="is-style-icon_pen">デプロイ予定のソースコードで<strong><span class="swl-marker mark_orange">データベース接続を使用していない場合</span></strong>は「<a href="#anc-step3">STEP３　PHPファイルのアップロード</a>」からお進め下さい。</p>



<p>それでは、詳しい手順を見ていきましょう！</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" id="anc-step1">STEP１　データベースを準備する</h2>



<p class="is-style-bg_stripe">まずは、エックスサーバー上に<strong>新規のデータベースを作成</strong>していきます。</p>



<p>ここで行うことは大きく分けて<strong>４つ</strong>です。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><strong>【手順】エックスサーバーでデータベースを準備する</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>データベースを新規作成する</li>



<li>作成したデータベースへアクセスするためのMySQLユーザを新規作成する</li>



<li>①で作成したデータベースに②を追加する</li>



<li>ローカルで構築していたDB構造を本番環境（エックスサーバー）のDBへインポートする</li>
</ul>
</div></div>



<p class="is-style-big_icon_point">データベースだけを作成しても、そこへ<strong><span class="swl-marker mark_orange">アクセスする権限を持ったユーザが用意されていないと、そもそもアクセスすること自体できません。</span></strong></p>



<p>そのため<br>②では「①へのアクセス用のMySQLユーザ」を作成し<br>③で、②で作成したユーザにデータベースへのアクセス権限を付与します。</p>



<p>そして、④ではローカルで作成していたDBのテーブル構成などをまるっとエックスサーバー上のDBへインポートします。</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>

<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>



<h3 class="wp-block-heading" id="anc-step-1-1">１．データベースを新規作成する</h3>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「MySQL設定」をクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">エックスサーバーのサーバーパネル内にある「データベース」→「MySQL設定」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="360" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection07.jpg" alt="「MySQL設定」をクリック" class="wp-image-12924" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection07.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection07-300x179.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQL設定」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「MySQL追加」タブをクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">「MySQL追加」タブをクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection08.jpg" alt="「MySQL追加」タブをクリック" class="wp-image-12925" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection08.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection08-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQL追加」タブをクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「データベース情報」を入力する</div><div class="swell-block-step__body">
<p>「データベース情報」を入力します。</p>



<p class="has-text-align-center is-style-balloon_box"><strong>(例) 入力内容</strong></p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09.jpg" alt="「データベース情報」を入力" class="wp-image-12942" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「データベース情報」を入力</figcaption></figure>
</div>


<p>具体的な<strong>項目名</strong>と<strong>入力内容</strong>は以下のとおりです。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目名</th><th>入力内容</th></tr></thead><tbody><tr><th>MySQLデータベース名</th><td>データベース名（任意の名称）</td></tr><tr><th>文字コード</th><td>UTF-8</td></tr><tr><th>メモ</th><td>自由入力欄です。どのような用途のデータベースなのかをメモしておくと便利です。<br>※任意項目</td></tr></tbody></table></figure>


<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><strong>「メモ」項目について</strong><br>「メモ」は任意項目ですが、日時が経過すると意外と<strong>なんのデータベースなのか</strong>を忘れてしまいがちです。<br>その度に中身を確認するのも手間なので、<strong>簡単なメモ書き</strong>をしておくと便利です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「確認画面へ進む」をクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">画面右下の「確認画面へ進む」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09-2.jpg" alt="「確認画面へ進む」をクリック" class="wp-image-12944" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09-2.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection09-2-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「確認画面へ進む」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「追加する」をクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">入力内容に誤りがなければ「追加する」をクリックしましょう。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection10.jpg" alt="「追加する」をクリック" class="wp-image-12927" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection10.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection10-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「追加する」をクリック</figcaption></figure>
</div>


<p class="u-mb-ctrl u-mb-20">データベースが追加されると、以下のような表示になります。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection11.jpg" alt="データベースが追加完了" class="wp-image-12928" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection11.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection11-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「データベース」の追加が完了</figcaption></figure>
</div></div></div>
</div>


<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/11/kekenta-icon-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/11/kekenta-icon-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>以上で<strong><span class="swl-marker mark_yellow">データベースの追加は完了</span></strong>です！<br>続いて、<strong>MySQLユーザーを新規作成</strong>していきましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading" id="anc-1-2">２．MySQLユーザを新規作成する</h3>



<p class="is-style-bg_stripe"><strong>データベースの新規作成</strong>が完了したら、次は<strong>MySQLユーザを作成</strong>していきましょう。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「MySQLユーザ追加」タブをクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">「MySQLユーザ追加」タブをクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection12.jpg" alt="「MySQLユーザ追加」タブをクリック" class="wp-image-12929" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection12.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection12-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ追加」タブをクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item" id="anc-1-2-2"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">MySQLユーザ情報を入力する</div><div class="swell-block-step__body">
<p>「MySQLユーザ情報」を入力します。</p>



<p class="has-text-align-center is-style-balloon_box"><strong>(例) 入力内容</strong></p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection13.jpg" alt="「MySQLユーザ情報」を入力" class="wp-image-12943" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection13.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection13-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ情報」を入力</figcaption></figure>
</div>


<p>具体的な<strong>項目名</strong>と<strong>入力内容</strong>は以下のとおりです。</p>



<figure class="wp-block-table u-mb-ctrl u-mb-20"><table class="has-fixed-layout"><thead><tr><th>項目名</th><th>入力内容</th></tr></thead><tbody><tr><th>MySQLユーザID</th><td>MySQLユーザID名（任意の名称）</td></tr><tr><th>パスワード</th><td>データベースアクセス用のパスワード</td></tr><tr><th>メモ</th><td>自由入力欄です。どのような用途のMySQLユーザなのかをメモしておくと便利です。<br>※任意項目</td></tr></tbody></table></figure>



<p class="is-style-icon_info">「<strong>MySQLユーザID</strong>」と「<strong>パスワード</strong>」は<strong><span class="swl-marker mark_orange">データベースの管理画面にアクセスするときやPHPからデータベースへ接続するときに使用する</span></strong>ので<strong><span class="swl-inline-color has-swl-deep-01-color">忘れないようにご注意ください。</span></strong><br>※後ほど「<a href="#anc-1-4">４．データベースへアクセス可能か確認する</a>」の節でも最終確認で使用します。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「確認画面へ進む」をクリック</div><div class="swell-block-step__body">
<p>画面右下の「確認画面へ進む」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14-1.jpg" alt="「確認画面へ進む」をクリック" class="wp-image-12945" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14-1.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14-1-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「確認画面へ進む」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「追加する」をクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">入力内容に誤りがなければ「追加する」をクリックしましょう。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14.jpg" alt="「追加する」をクリック" class="wp-image-12931" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection14-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「追加する」をクリック</figcaption></figure>
</div>


<p class="u-mb-ctrl u-mb-20">MySQLユーザが追加されると、以下のような表示になります。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection16.jpg" alt="「MySQLユーザ」の追加が完了" class="wp-image-12932" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection16.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection16-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ」の追加が完了</figcaption></figure>
</div></div></div>
</div>


<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>



<h3 class="wp-block-heading">３．データベースへMySQLユーザを追加する</h3>



<p>作成したばかりのデータベースは、<strong><span class="swl-marker mark_orange">初期状態だとユーザがいません</span></strong>。</p>



<p class="is-style-bg_stripe">そこで最後は、「<a href="#anc-1-2">２．MySQLユーザを新規作成する</a>」で作成したMySQLユーザを<strong><span class="swl-marker mark_yellow">新規作成したデータベースへ追加</span></strong>していきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「MySQL一覧」タブをクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">「MySQL一覧」タブをクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection17.jpg" alt="「MySQL一覧」タブをクリック" class="wp-image-12933" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection17.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection17-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQL一覧」タブをクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">MySQLユーザを追加する</div><div class="swell-block-step__body">
<p>プルダウンメニューから追加するユーザ（「<a href="#anc-1-2">２．MySQLユーザを新規作成する</a>」で作成したMySQLユーザ）を選択します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection18.jpg" alt="「MySQLユーザ」をプルダウンから選択" class="wp-image-12934" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection18.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection18-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ」をプルダウンから選択</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「追加」をクリック</div><div class="swell-block-step__body">
<p>「追加」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection19.jpg" alt="「追加」をクリック" class="wp-image-12935" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection19.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection19-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「追加」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「MySQLユーザ」が追加されていることを確認</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">MySQLユーザが追加されると、以下のような表示になります。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection20.jpg" alt="「MySQLユーザ」が追加される" class="wp-image-12936" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection20.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection20-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ」が追加される</figcaption></figure>
</div>


<p>再度「MySQL一覧」タブをクリックして一覧画面へ戻ると、<strong><span class="swl-marker mark_yellow">データベースへMySQLユーザが追加されている</span></strong>ことが確認できます。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="322" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection21.jpg" alt="「MySQLユーザ」の追加完了後の表示" class="wp-image-12937" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection21.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection21-300x160.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「MySQLユーザ」の追加完了後の表示</figcaption></figure>
</div></div></div>
</div>



<h3 class="wp-block-heading" id="anc-1-4">４．データベースへアクセス可能か確認する</h3>



<p>以上で</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>「データベース」と「MySQLユーザ」の新規作成</strong></li>



<li><strong>アクセス権限の付与</strong></li>
</ul>



<p>が完了しました。</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>最後に、念のため<strong><span class="swl-marker mark_yellow">本当に新規作成した情報でデータベースへアクセスできるかどうかを確認</span></strong>しておきましょう。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>具体的には、<strong>「phpMyAdmin」の管理画面へアクセス可能かどうか</strong>を確かめていきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「phpMyAdmin」をクリック</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">エックスサーバーのサーバーパネル内にある「データベース」→「phpmyadmin」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="360" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection22.jpg" alt="「phpmyadmin」をクリック" class="wp-image-12938" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection22.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection22-300x179.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">「phpmyadmin」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">認証情報を入力する</div><div class="swell-block-step__body">
<p>すると、Basic認証の入力フォームが表示されるので、<a href="#anc-1-2-2">MySQLユーザを新規作成したとき</a>に設定した認証情報を入力します。</p>



<p class="has-text-align-center is-style-balloon_box"><strong>(例) 入力内容</strong></p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-30">
<figure class="aligncenter size-full"><img decoding="async" width="331" height="272" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection23.jpg" alt="Basic認証の入力内容" class="wp-image-12939" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection23.jpg 331w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection23-300x247.jpg 300w" sizes="(max-width: 331px) 100vw, 331px" /><figcaption class="wp-element-caption">Basic認証の入力内容</figcaption></figure>
</div>


<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目名</th><th>入力内容</th></tr></thead><tbody><tr><th>ユーザ名</th><td><a href="#anc-1-2-2">MySQLユーザを新規作成したとき</a>に設定した<strong>MySQLユーザID</strong><br>（例）xs123456_sampusr</td></tr><tr><th>パスワード</th><td><a href="#anc-1-2-2">MySQLユーザを新規作成したとき</a>に設定した<strong>パスワード</strong></td></tr></tbody></table></figure>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「ログイン」をクリック</div><div class="swell-block-step__body">
<p>「ログイン」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="331" height="272" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection24.jpg" alt="「ログイン」をクリック" class="wp-image-12940" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection24.jpg 331w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection24-300x247.jpg 300w" sizes="(max-width: 331px) 100vw, 331px" /><figcaption class="wp-element-caption">「ログイン」をクリック</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item" id="anc-1-4-1"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">phpMyaAminの管理画面へアクセスできたら成功</div><div class="swell-block-step__body">
<p class="is-style-icon_good">無事に認証されると<strong>phpMyAdmin</strong>の管理画面が表示されます。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="295" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25.jpg" alt="phpmyadminの管理画面へアクセス成功" class="wp-image-12941" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25-300x146.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">phpmyadminの管理画面へアクセス成功</figcaption></figure>
</div>


<p class="is-style-icon_info">この画面はこのあとの「<a href="#anc-1-5">5．エックスサーバー上のDBへローカルのDB構造をインポートする</a>」ですぐに使用するため、タブを閉じないようにしておくとスムーズです。</p>
</div></div>
</div>


<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/11/kekenta-icon-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/11/kekenta-icon-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>ここまでお疲れさまでした！<br>以上で無事に<strong>データベースとMySQLユーザの新規作成</strong>と、<strong>そのアクセス権限の付与</strong>が完了しました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading" id="anc-1-5">５．エックスサーバー上のDBへローカルのDB構造をインポートする</h3>



<p class="is-style-bg_stripe">次に、「データベースの準備」の最後の作業として、ローカルのDB構造をエックスサーバー上のDBへインポートします。</p>



<p class="is-style-icon_info">ローカルでも「phpMyAdminを使用してアプリ開発を進めていた」という前提で解説をしていきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ローカルでphpMyAdminへアクセスする</div><div class="swell-block-step__body"><div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="451" height="292" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection26.jpg" alt="ローカルでphpMyAdminへアクセスする" class="wp-image-13641" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection26.jpg 451w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection26-300x194.jpg 300w" sizes="(max-width: 451px) 100vw, 451px" /><figcaption class="wp-element-caption">ローカルでphpMyAdminへアクセスする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">デプロイしたいDBを選択する</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">左側のDBリストからデプロイしたいDBを選択します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="295" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection27.jpg" alt="デプロイしたいDBを選択する" class="wp-image-13642" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection27.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection27-300x146.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">デプロイしたいDBを選択する</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「エクスポート」タブをクリックする</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">画面上部にある「エクスポート」タブをクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="295" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection28.jpg" alt="「エクスポート」タブをクリックする" class="wp-image-13643" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection28.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection28-300x157.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「エクスポート」タブをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「エクスポート」ボタンをクリックする</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">「簡易 &#8211; 最小限のオプションだけ表示」が選択されていることを確認し、下側にある「エクスポート」ボタンをクリックします。</p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="295" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection29.jpg" alt="「エクスポート」ボタンをクリックする" class="wp-image-13644" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection29.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection29-300x157.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「エクスポート」ボタンをクリックする</figcaption></figure>
</div>


<p class="u-mb-ctrl u-mb-20">すると、別のDB（今回だとエックスサーバー上のDB）へインポートするためのsqlファイルがダウンロードされます。</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>以下より、このファイルを<strong>エックスサーバー上のDBへインポート</strong>していきます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">エックスサーバーでphpMyAdminを開く</div><div class="swell-block-step__body">
<p>エックスサーバーでphpMyAdminを開きます。</p>



<p class="is-style-icon_info u-mb-ctrl u-mb-20">※「<a href="#anc-1-4">４．データベースへアクセス可能か確認する</a>」の最後の確認作業で開いた画面を開きます。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="295" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25.jpg" alt="phpmyadminの管理画面へアクセス成功" class="wp-image-12941" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25.jpg 605w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/xserver-connection25-300x146.jpg 300w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption class="wp-element-caption">phpmyadminの管理画面</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">使用するデータベースをクリックする</div><div class="swell-block-step__body">
<p>左側のDBリストから今回使用するDB（<a href="#anc-step1">第１章「STEP１　データベースを準備する」</a>で作成したDB）を選択します。</p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="282" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection30.jpg" alt="使用するデータベースをクリックする" class="wp-image-13645" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection30.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection30-300x150.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">使用するデータベースをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「インポート」タブをクリックする</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">画面上部にある「インポート」タブをクリックします。</p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="207" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection31.jpg" alt="「インポート」タブをクリックする" class="wp-image-13646" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection31.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection31-300x110.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「インポート」タブをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ローカルでエクスポートしたsqlファイルを選択する</div><div class="swell-block-step__body">
<p>「ファイルを選択」をクリックし、ローカルのDBからエクスポートしたsqlファイルを選択します。</p>



<p class="is-style-icon_pen u-mb-ctrl u-mb-20">デフォルト設定であれば「ダウンロード」フォルダに入っているはずです。</p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="207" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection32.jpg" alt="ローカルでエクスポートしたsqlファイルを選択する" class="wp-image-13647" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection32.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection32-300x110.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">ローカルでエクスポートしたsqlファイルを選択する</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「インポート」ボタンをクリックする</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">ページの最下部にある「インポート」ボタンをクリックします。</p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="278" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection33.jpg" alt="「インポート」ボタンをクリックする" class="wp-image-13648" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection33.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection33-300x148.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「インポート」ボタンをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">インポートが完了する</div><div class="swell-block-step__body">
<p>すると、sqlファイル内のSQLが一括実行され、画像のようなログとともにDBテーブルのインポートが完了します。</p>



<p class="has-text-align-center is-style-balloon_box u-mb-ctrl u-mb-20"><strong>DBテーブルのインポートが完了した直後の画面</strong></p>


<div class="wp-block-image u-mb-ctrl u-mb-10 is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="287" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection34.jpg" alt="インポート完了画面" class="wp-image-13651" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection34.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection34-300x153.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">インポート完了画面</figcaption></figure>
</div></div></div>
</div>


<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/11/kekenta-icon-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/11/kekenta-icon-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>工程が長く大変だったかと思いますが、以上でローカルのDBをエックスサーバー上へ移行することができました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<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">STEP２　データベース接続情報を設定する</h2>



<p class="is-style-bg_stripe">この章では、データベースの接続情報を<code class="file_name">.env</code>ファイルへ移しつつ、「<a href="#anc-step1">STEP１　データベースを準備する</a>」で作成したデータベースに合わせた接続情報へ修正していきます。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> <strong>.envファイルとは？</strong></span></span></div><div class="cap_box_content">
<p><code class="file_name">.env</code>は、アプリケーションで使用する「環境変数」をまとめておくためのファイルです。</p>



<p>また、「環境変数」とは、簡単にいうと<strong>とってもとっても重要な情報</strong>のことです。</p>



<p>今回でいうと、データベース接続情報が該当します。</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><code class="file_name">.env</code>が漏洩する＝<strong><span class="swl-marker mark_orange">個人情報漏洩と同義</span></strong>なので、慎重に扱う必要があります！！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div></div></div>



<p>以上を踏まえた上で、実際に<code class="file_name">.env</code>を扱っていきましょう。</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>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><strong><strong>【手順】</strong>データベース接続情報を設定する</strong></span></div><div class="cap_box_content">
<ol class="wp-block-list -list-under-dashed is-style-num_circle">
<li>Composerをインストールする</li>



<li>Composerで<code>phpdotenv</code>をインストールする</li>



<li><code class="file_name">.env</code>を準備する</li>



<li>データベース接続が必要なファイルへ<code class="file_name">.env</code>に記述した情報を読み込む</li>
</ol>
</div></div>



<p class="is-style-icon_info u-mb-ctrl u-mb-30">Gitなどのバージョン管理ツールを使用している場合は、<strong><span class="swl-marker mark_orange">絶対に<code class="file_name">.env</code>ファイルがバージョン管理下に含まれないように</span></strong>してください。例えば、Gitを使用しているなら<code class="file_name">.gitignore</code>へ<code class="file_name">.env</code>ファイルを追加記述します。<br>※バージョン管理下へ含めてしまうと、バージョン管理ツール経由で機密情報が漏洩する危険があります。</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>



<h3 class="wp-block-heading">１．Composerをインストールする</h3>



<p>まずは<strong>Composerをインストール</strong>しましょう。</p>



<p class="is-style-icon_info u-mb-ctrl u-mb-20">すでにお使いのパソコンに<strong>Composerをインストール済みの場合</strong>は、「<a href="#anc-step2-2">２．phpdotenvをインストールする</a>」へお進みください。</p>


<div class="swell-block-balloon u-mb-ctrl u-mb-20"><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><strong><span class="swl-marker mark_yellow">Composerの詳しいインストール方法</span></strong>については<strong>以下の記事</strong>で解説しています。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/" target="_blank" rel="noopener noreferrer">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading" id="anc-step2-2">２．<code>phpdotenv</code>をインストールする</h3>



<p class="u-mb-ctrl u-mb-10">Composerのインストールができたら、次に<code>phpdotenv</code>をインストールします。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2 u-mb-ctrl u-mb-30" data-colset="col1"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>phpdotenvとは？</strong></span></div><div class="cap_box_content">
<p><strong>環境ファイル（<code class="file_name">.env</code>）を<span class="swl-marker mark_green">安全に</span>扱えるようにするためのライブラリ</strong>です。</p>
</div></div>



<p class="is-style-balloon_box"><strong>PHPプロジェクトディレクトリ直下で以下のコマンドを実行</strong></p>



<div class="hcb_wrap u-mb-ctrl u-mb-20"><pre class="prism line-numbers lang-plain"><code>composer require vlucas/phpdotenv</code></pre></div>


<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>これだけで<code>phpdotenv</code>のインストールが完了します！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/" target="_blank" rel="noopener noreferrer">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">３．<code class="file_name">.env</code>を準備する</h3>



<p>次に、<code class="file_name">.env</code>の作成とその中身の記述をしていきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">.envファイルを作成する</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">PHPプロジェクトディレクトリ直下に<code class="file_name">.env</code>を<strong>手動で作成</strong>します。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="369" height="293" src="https://kekenta-it-blog.com/wp-content/uploads/2025/01/image.png" alt=".envファイルを作成" class="wp-image-13121" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/01/image.png 369w, https://kekenta-it-blog.com/wp-content/uploads/2025/01/image-300x238.png 300w" sizes="(max-width: 369px) 100vw, 369px" /><figcaption class="wp-element-caption">.envファイルを作成</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item" id="anc-step2-2"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">.envファイルにデータベース情報を記述する</div><div class="swell-block-step__body">
<p>次に、<code class="file_name">.env</code>に<strong>データベース情報を記述</strong>します。</p>



<p class="u-mb-ctrl u-mb-20 is-style-icon_pen">ここではいったん<strong>接続テスト</strong>を行うため、<strong><span class="swl-marker mark_yellow">ローカル側のデータベース情報を記述</span></strong>します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># ローカル側のデータベース情報
DB_HOST=&#39;mysql:dbname=todo_list;host=127.0.0.1;charset=utf8;&#39;
DB_USER=&#39;kekenta&#39;
DB_PASSWORD=&#39;kekenta&#39;</code></pre></div>



<p class="is-style-icon_info"><strong><span class="swl-marker mark_orange">各行の末尾に「;（セミコロン）」は不要</span></strong>です。付けてしまうとエラーになるのでお気を付けください。</p>
</div></div>
</div>



<h3 class="wp-block-heading">４．データベース接続が必要なファイルへ<code class="file_name">.<strong>env</strong></code>に記述した情報を読み込む</h3>



<p class="is-style-bg_stripe">本節では、<code class="file_name">.env</code>に記述したDB情報が、<strong>データベース接続を必要とするすべてのファイル</strong>に読み込まれるようソースコードの修正を行います。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">PHPファイルを.envファイルが読み込まれるように編集する</div><div class="swell-block-step__body">
<p><code class="file_name">.env</code>から情報を読み込ませるために、データベース情報が必要な各ファイルを以下のように修正します。</p>



<p class="is-style-icon_info u-mb-ctrl u-mb-20">データベース情報を記述している<strong><span class="swl-marker mark_orange">すべてのファイルを修正</span></strong>してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php

/**
 * .envファイルを使用する
 */
require &#39;./vendor/autoload.php&#39;; // ★追加
Dotenv\Dotenv::createImmutable(__DIR__)-&gt;load(); // ★追加

/**
 * ■ 元々定義していたDB接続情報は削除
 */
// const DB_HOST = &#39;mysql:dbname=todo_list;host=127.0.0.1;charset=utf8&#39;;
// const DB_USER = &#39;kekenta&#39;;
// const DB_PASSWORD = &#39;kekenta&#39;;

/**
 * データベース接続処理
 */
// $pdo = new PDO(DB_HOST, DB_USER, DB_PASSWORD, [ // ■ 削除
$pdo = new PDO($_ENV[&#39;DB_HOST&#39;], $_ENV[&#39;DB_USER&#39;], $_ENV[&#39;DB_PASSWORD&#39;], [ // ★追加
  
    // PDOオプション記述箇所（※ここでは省略）

]);


// ～ 省略 ～


?&gt;</code></pre></div>



<p class="is-style-big_icon_point">元々定義していたデータベース情報を削除し、代わりに<strong><code class="file_name">.env</code>からデータベース情報を読み込むように修正</strong>しています。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ブラウザで表示確認（ローカル側）</div><div class="swell-block-step__body">
<p>この段階で一度、<strong><span class="swl-marker mark_yellow">ローカル側で</span>データベース関連の処理が問題なく動作するかどうかテスト</strong>します。</p>



<p class="is-style-icon_pen">もしエラーが発生してしまった場合は、<code class="file_name">.env</code>の各行の末尾にセミコロンが入っていないかなど、<strong><span class="swl-marker mark_orange">記述ミスが無いか確認</span></strong>してみましょう。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">.envファイルの内容を本番環境用の情報に修正する</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">ローカル上で、<code class="file_name">.env</code>からデータベース情報を問題なく読みこめていることが確認できたら、続いて<strong>本番環境用の情報へ修正</strong>します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># ローカル用（本番環境へデプロイするときも削除せずコメントアウトしておくと後々便利です）
# DB_HOST=&#39;mysql:dbname=todo_list;host=127.0.0.1;charset=utf8;&#39;
# DB_USER=&#39;kekenta&#39;
# DB_PASSWORD=&#39;kekenta&#39;

# エックスサーバー（本番環境）用
DB_HOST=&#39;mysql:dbname=エックスサーバーのMySQLデータベース名;host=127.0.0.1;charset=utf8;&#39;
DB_USER=&#39;エックスサーバーのMySQLアクセス用ユーザ名&#39;
DB_PASSWORD=&#39;エックスサーバーのMySQLアクセス用パスワード&#39;</code></pre></div>
</div></div>
</div>



<p>以上で、<strong>データベース情報を<code class="file_name">.env</code>から読み込む方式に変更</strong>できました。</p>



<p class="is-style-icon_good">データベース情報のような機密情報は、このように<code class="file_name">.env</code>のような環境変数ファイルに記述し、プログラム側で読み込むことによって<strong>セキュリティリスクを低減</strong>できます。ぜひ覚えておいてください。</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>次の章では、いよいよ<strong>エックスサーバー上にPHPプロジェクトファイルをアップロード</strong>していきます。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<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" id="anc-step3">STEP３　PHPファイルのアップロード</h2>



<p><strong>PHPファイルを本番環境へアップロード（デプロイ）する方法</strong>はいくつかあります。</p>



<p>例えば、FFFTPやFileZillaのような「FTPソフトを利用する方法」や「Githubを利用する方法」などです。</p>



<p>しかし、この記事は初心者の方向けということもあり、</p>



<p class="is-style-bg_stripe"><strong>PHPプロジェクトディレクトリをzip化　→　エックスサーバー上で展開</strong></p>



<p>というもっとも手軽で簡単な方法をご紹介していきます。</p>



<p class="is-style-icon_info">「FTPソフトを利用する方法」は最も手軽である反面、<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>



<p><strong>具体的な手順</strong>は以下のとおりです。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><strong><strong>【手順】</strong>PHPアプリのアップロード</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>PHPのプロジェクトディレクトリを<strong>zip形式</strong>に圧縮する</li>



<li>エックスサーバーのファイルマネージャーへ①のzipファイルをアップロードする</li>



<li>zipファイルを展開する</li>
</ul>
</div></div>



<p>ひとつずつ具体的な手順を解説していきます。</p>



<h3 class="wp-block-heading">１．PHPプロジェクトディレクトリをzip形式に圧縮する</h3>



<p class="is-style-bg_stripe">まずはローカル上にある<strong>プロジェクトディレクトリをzip形式に圧縮</strong>しましょう。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="305" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection35.jpg" alt="PHPプロジェクトディレクトリをzip形式に圧縮する" class="wp-image-13689" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection35.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection35-300x163.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">PHPプロジェクトディレクトリをzip形式に圧縮する</figcaption></figure>
</div>


<h3 class="wp-block-heading">２．エックスサーバーのファイルマネージャーへzipファイルをアップロードする</h3>



<p class="is-style-bg_stripe">次に、エックスサーバーのファイルマネージャーへ<strong>zipファイルをアップロード</strong>していきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">サーバーパネルにある「ファイルマネージャー」をクリックする</div><div class="swell-block-step__body"><div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="287" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection36.jpg" alt="サーバーパネルにある「ファイルマネージャー」をクリックする" class="wp-image-13690" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection36.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection36-300x153.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">サーバーパネルにある「ファイルマネージャー」をクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">デプロイ先のドメイン名のディレクトリをクリックする</div><div class="swell-block-step__body">
<p>ファイルマネージャーでは、左側にサーバー上のディレクトリリストが表示されています。</p>



<p class="u-mb-ctrl u-mb-20">その中から、「デプロイで使用するドメイン名のディレクトリ」をクリックします。</p>



<p class="has-text-align-center is-style-balloon_box"><strong>（例）kekenta-it-blog.comをデプロイ先にする場合</strong></p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection37.jpg" alt="デプロイ先のドメイン名のディレクトリをクリックする" class="wp-image-13691" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection37.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection37-300x159.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">デプロイ先のドメイン名のディレクトリをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「public_html」をクリックする<br></div><div class="swell-block-step__body">
<p>ドメインディレクトリ内に<code class="dir_name">public_html</code>ディレクトリがあるので、これをクリックします。</p>



<p class="is-style-big_icon_point">エックスサーバーでは、このディレクトリがいわゆる<strong>「ドキュメントルート（公開ディレクトリ）」に該当</strong>します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection38.jpg" alt="「public_html」をクリックする" class="wp-image-13692" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection38.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection38-300x159.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「public_html」をクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「アップロード」をクリックする</div><div class="swell-block-step__body">
<p><code class="dir_name">public_html</code>内に入ったら、画面上部にある「アップロード」をクリックします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection39.jpg" alt="「アップロード」をクリックする" class="wp-image-13693" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection39.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection39-300x159.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「アップロード」をクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">zipファイルをアップロードする</div><div class="swell-block-step__body">
<p>すると、以下のようなダイアログが表示されるので、アップロードするzipファイルを選択し、右下にある「アップロード」をクリックしましょう。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-20">
<figure class="aligncenter size-full"><img decoding="async" width="319" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection41.jpg" alt="アップロードするzipファイルを選択する" class="wp-image-13695" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection41.jpg 319w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection41-300x280.jpg 300w" sizes="(max-width: 319px) 100vw, 319px" /><figcaption class="wp-element-caption">アップロードするzipファイルを選択する</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box"><strong>アップロード完了</strong></p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection40.jpg" alt="zipファイルがアップロードされる" class="wp-image-13694" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection40.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection40-300x159.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">zipファイルがアップロードされる</figcaption></figure>
</div></div></div>
</div>



<h3 class="wp-block-heading">３．zipファイルを展開する</h3>



<p class="is-style-bg_stripe">最後に、<strong>アップロードしたzipファイルを「展開」</strong>していきます。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">展開したいzipファイルをクリックする</div><div class="swell-block-step__body">
<p>まずは、zipファイルをクリックします。</p>



<p>すると、上部メニューの「展開」がクリックできるようになります。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="298" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection42.jpg" alt="展開したいzipファイルをクリックする" class="wp-image-13696" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection42.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection42-300x159.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">展開したいzipファイルをクリックする</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「展開」をクリックする</div><div class="swell-block-step__body">
<p>上部メニューの「展開」をクリックすると、以下のようなダイアログが表示されるので、さらに「展開」をクリックします。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-20">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="227" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection43.jpg" alt="「展開」をクリックする" class="wp-image-13697" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection43.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection43-300x121.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">「展開」をクリックする</figcaption></figure>
</div>


<p>すると、以下のようにzipファイルが展開されます。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="292" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection44.jpg" alt="zipファイルが展開される" class="wp-image-13707" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection44.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection44-300x156.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">zipファイルが展開される</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">展開したプロジェクトディレクトリを「public_html」直下へ移動する</div><div class="swell-block-step__body">
<p>エックスサーバー上でzipファイルを展開した直後の状態だと、ディレクトリ構造が</p>



<p>「public_html」→「todo_app」→「todo_app」</p>



<p>のように<strong>一段階、余計にディレクトリが挟まります。</strong></p>



<p class="is-style-icon_info">展開したディレクトリをクリックして、中の構造を一度確認してみましょう。</p>



<p class="u-mb-ctrl u-mb-20">そのため、zipファイルを展開したら、続けて、そのディレクトリ内にある<strong>本当のプロジェクトディレクトリ</strong>を<code class="dir_name">public_html</code>へ移動します。</p>



<p class="has-text-align-center is-style-balloon_box"><span data-icon="LsThumbUp" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNCAxOGg0YzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjIwYzAtMS4xLjktMiAyLTJ6TTQxIDE0SDI3bC43LTcuMWMuMi0xLjgtLjYtMy41LTItNC42LS45LS43LTIuMi0uNS0yLjkuNUwxNS4zIDE0Yy0uOSAxLjMtMS4zIDIuOS0xLjMgNC40VjM4YzAgMi4yIDEuOCA0IDQgNGgyMC44YzEuOSAwIDMuNS0xLjMgMy45LTMuMWwzLTEzLjZjLjItLjkuMy0xLjcuMy0yLjZWMTljMC0yLjgtMi4yLTUtNS01eiI+PC9wYXRoPjwvc3ZnPg==)" aria-hidden="true" class="swl-inline-icon"> </span><strong>ドラッグ＆ドロップで移動可能</strong></p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="292" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection45.jpg" alt="展開したプロジェクトディレクトリを「public_html」直下へ移動する" class="wp-image-13699" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection45.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection45-300x156.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">展開したプロジェクトディレクトリを「public_html」直下へ移動する</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ディレクトリを整理する</div><div class="swell-block-step__body">
<p class="u-mb-ctrl u-mb-20">プロジェクトディレクトリを<code class="dir_name">public_html</code>へ移動すると、<strong><span class="swl-marker mark_blue">以下２つのような名称のディレクトリ</span></strong>が確認できるかと思います。</p>



<ol class="wp-block-list -list-under-dashed is-style-num_circle">
<li>元々のディレクトリ名（例：<code class="dir_name">todo_app</code>）</li>



<li>元々のディレクトリ名 &#8211; copy（例：<code class="dir_name">todo_app - copy</code>）</li>
</ol>



<p class="is-style-icon_pen u-mb-ctrl u-mb-20"><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>



<p>そのため、<strong><span class="swl-marker mark_yellow">下記のように対応</span></strong>をします。</p>



<ul class="wp-block-list is-style-good_list -list-under-dashed u-mb-ctrl u-mb-20">
<li>① …… 削除</li>



<li>② ……「任意のディレクトリ名」へ名前を変更</li>
</ul>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="292" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection46.jpg" alt="ディレクトリを整理する" class="wp-image-13710" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection46.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection46-300x156.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">ディレクトリを整理する</figcaption></figure>
</div></div></div>
</div>


<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/11/kekenta-icon-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/11/kekenta-icon-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>お疲れ様です！<br>これでついに<strong>デプロイが完了</strong>しました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ここまで問題なく作業を行えていれば、ブラウザ上でWebアプリが動作するはずです！</p>



<p>最後に、<strong>動作確認</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">STEP４　ウェブブラウザで確認</h2>



<p><strong>動作確認</strong>で行うことはシンプルです。</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 is-style-num_circle -list-under-dashed">
<li>ブラウザのアドレスバーにURLを入力</li>



<li>アプリの動作確認を行う</li>
</ul>
</div></div>



<h3 class="wp-block-heading">１．ブラウザのアドレスバーにURLを入力</h3>



<p class="is-style-bg_stripe">まずはお好きなブラウザを開いて、アドレスバーにURLを入力します。</p>



<p>URLですが、例えば僕の場合は</p>



<ul class="wp-block-list is-style-good_list -list-under-dashed">
<li><strong>ドメイン</strong>……kekenta-it-blog.com</li>



<li><strong>プロジェクトディレクトリ名</strong>……todo_app</li>
</ul>



<p>としたので</p>



<p class="has-text-align-center is-style-bg_stripe"><strong>https://kekenta-it-blog.com/todo_app</strong></p>



<p>が入力するURLになります。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="426" height="81" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection47.jpg" alt="ブラウザのアドレスバーにURLを入力" class="wp-image-13701" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection47.jpg 426w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection47-300x57.jpg 300w" sizes="(max-width: 426px) 100vw, 426px" /><figcaption class="wp-element-caption">ブラウザのアドレスバーにURLを入力</figcaption></figure>
</div>


<p class="u-mb-ctrl u-mb-20">すると、<strong>プロジェクトディレクトリ直下にある「index.php＝トップページファイル」が呼び出されます。</strong></p>



<p class="has-text-align-center is-style-balloon_box"><strong><strong>(例</strong>) トップページ表示</strong></p>


<div class="wp-block-image is-style-browser_mac">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="272" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection48.jpg" alt="（例）トップページ表示" class="wp-image-13702" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection48.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection48-300x145.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">（例）トップページ表示</figcaption></figure>
</div>


<h3 class="wp-block-heading">２．アプリの動作確認をする</h3>



<p>最後のステップは「アプリの動作確認」です。</p>



<p>ここで<strong>チェックするべき項目</strong>は、主に以下の通りです。</p>



<p class="is-style-balloon_box"><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></p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>すべての機能が問題なく動作するか</li>



<li>アクセスできるはずのページに問題なくアクセスできるか</li>



<li>アクセスできないはずのページへのアクセスが適切に拒否されるか</li>
</ul>


<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>僕は今回は試しに「TODOアプリ」をデプロイしてみたので、とりあえず<strong>TODOリストの追加・編集・削除</strong>の機能動作をチェックしました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center is-style-balloon_box"><strong>(例) 機能動作チェックの様子</strong></p>


<div class="wp-block-image is-style-browser_mac">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="254" src="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection49.jpg" alt="（例）機能動作チェックの様子" class="wp-image-13703" srcset="https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection49.jpg 563w, https://kekenta-it-blog.com/wp-content/uploads/2025/02/xserver-connection49-300x135.jpg 300w" sizes="(max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">（例）機能動作チェックの様子</figcaption></figure>
</div>


<p class="is-style-icon_good">アプリが実装通りに動いていれば、<strong>以上でデプロイは完了</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">PHPで作成したWebページやアプリをエックスサーバーへデプロイするする方法</span></strong>でした。</p>



<p>エックスサーバーのようなレンタルサーバーを利用すれば、PHPで作成したWebページ・アプリは比較的簡単にデプロイが可能です。</p>



<p>とはいえ、初めてデプロイしたという方にとっては、工程も長くなかなか大変だったのではないかと思います。</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>今後、アプリ開発にも慣れて、より本格的な運用をしていきたいとなった場合は、Githubを利用する方法がベストです。</p>



<p>とはいえ、今回ご紹介した内容と大きく異なるのは「どんな方法でプロジェクトディレクトリをサーバー上へアップロードするか」という点だけなので、まずはこの記事の内容の全体像をおさえていただければスムーズにステップアップできるかと思います。</p>



<p>デプロイはプログラミング初心者の方にとって鬼門のひとつです。</p>



<p>この記事がそこを突破する一助となったなら幸いです。</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/11/kekenta-icon-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/11/kekenta-icon-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>当ブログではPHPやそのフレームワークであるLaravelに関する情報などを発信しています。ご興味のある方はほかの記事もご覧いただけるとうれしいです！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/php-deploy-xserver-for-zip/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
