<?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>SPA  |  React入門</title>
	<atom:link href="https://react-js.jp/tag/spa/feed" rel="self" type="application/rss+xml" />
	<link>https://react-js.jp</link>
	<description>WebアプリUI構築のためのJavaScriptライブラリ</description>
	<lastBuildDate>Thu, 08 Dec 2022 05:02:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://react-js.jp/wp-content/uploads/cropped-React_logo_logotype_emblem_512-32x32.png</url>
	<title>SPA  |  React入門</title>
	<link>https://react-js.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>SPAとは</title>
		<link>https://react-js.jp/spa</link>
					<comments>https://react-js.jp/spa#respond</comments>
		
		<dc:creator><![CDATA[りあぴ]]></dc:creator>
		<pubDate>Thu, 08 Dec 2022 05:02:35 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[SPA]]></category>
		<guid isPermaLink="false">https://react-js.jp/?p=40</guid>

					<description><![CDATA[ReactやVue.jsなどのモダンなJavaScriptフレームワークで作るWebアプリケーションは基本的にSPA(Single Page Application)の構成になっています。 目次 これまでのWebとSPA [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ReactやVue.jsなどのモダンなJavaScriptフレームワークで作るWebアプリケーションは基本的にSPA(Single Page Application)の構成になっています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">これまでのWebとSPAの違い</a><ol><ol><li><a href="#toc2" tabindex="0">これまでのWeb</a></li><li><a href="#toc3" tabindex="0">SPAのWebアプリケーション</a></li></ol></li></ol></li><li><a href="#toc4" tabindex="0">SPAのメリット</a><ol><ol><li><a href="#toc5" tabindex="0">高速な動作が実現できる</a></li><li><a href="#toc6" tabindex="0">チームで開発しやすくなる</a></li><li><a href="#toc7" tabindex="0">変更・修正がやりやすくなる</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">これまでのWebとSPAの違い</span></h2>



<p>これまでのWebサイトやWebアプリケーションとの違いとしては、SPAはHTMLが1つしかなく、JavaScriptで画面の要素を変更して、通信や画面の書き換えなどの動作を実現している点です。</p>



<h4><span id="toc2">これまでのWeb</span></h4>



<ol>
<li>ユーザーがリンクをクリックする</li>



<li>ブラウザがURLをリクエストする</li>



<li>Webサーバーからページ全体のデータが送られてくる</li>



<li>ブラウザがページを表示する</li>



<li>ユーザーがリンクをクリックする</li>



<li>Webサーバーからページ全体のデータが送られてくる</li>



<li>ブラウザが<span class="bold-red">違うページを表示し直す</span></li>
</ol>



<p>といった流れでページにアクセスしていました。<br>そのため、リンクをクリックした後に、次の画面が表示されるまで待たされることがしばしばありました。</p>



<h4><span id="toc3">SPAのWebアプリケーション</span></h4>



<ol>
<li>ユーザーがリンクをクリックする</li>



<li>ブラウザがURLをリクエストする</li>



<li>Webサーバーからページ全体のデータが送られてくる</li>



<li>ブラウザがページを表示する</li>



<li>ユーザーがリンクをクリックする</li>



<li>Webサーバーから<span class="bold-red">ページの差分データが送られてくる</span></li>



<li>ブラウザが現在の<span class="bold-red">ページを部分的に書き換える</span></li>
</ol>



<p>現在のページと、次のページの差分データのみを更新するので、通信も画面描画も高速に実現される仕組みになっています。</p>



<h2><span id="toc4">SPAのメリット</span></h2>



<h4><span id="toc5">高速な動作が実現できる</span></h4>



<p>特に通常のWebサイトと違い、Webアプリケーションの場合はUIに対するレスポンスの速さでユーザー体験がずいぶんと違って感じますので重要です。</p>



<h4><span id="toc6">チームで開発しやすくなる</span></h4>



<p>上の例で出てきた差分、つまりUIコンポーネントごとに別々に開発できるので、チームで分担して開発しやすくなります。</p>



<h4><span id="toc7">変更・修正がやりやすくなる</span></h4>



<p>デザインや挙動を変更する場合も、全体を修正する必要がなく、UIコンポーネントを修正すれば良いので開発やサービス運用がやりやすくなります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://react-js.jp/spa/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
