<?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>vue.js アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/vue-js/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/vue-js/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Thu, 10 Mar 2022 12:40:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>vue.js アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/vue-js/</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>【初心者】簡単！vue.jsで電卓の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/4571/</link>
					<comments>https://nyanblog2222.com/programming/javascript/4571/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 12:40:12 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[vue.js]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[計算機]]></category>
		<category><![CDATA[電卓]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4571</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />前回はJavaScriptで電卓を作成しました。今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。 前回の記事はこちらから！ 目次 はじめに電卓の機能HTMLvue.jsの設定 → CDNでの設定電卓の各 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>前回はJavaScriptで電卓を作成しました。<br>今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。</p>



<p>前回の記事はこちらから！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/programming/javascript/4496/" title="【初心者】簡単！JavaScriptで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JSで四則演算や小数点の計算ができる簡易的な電卓を作成。持たせる機能から作り方の考え方までHTML,CSSソースやデモページ付きで解説しているので、プログラミングの勉強や参考に！デモページあり。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.06</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-popular">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>




  <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">はじめに</a><ol><li><a href="#toc2" tabindex="0">電卓の機能</a></li></ol></li><li><a href="#toc3" tabindex="0">HTML</a><ol><li><a href="#toc4" tabindex="0">vue.jsの設定 → CDNでの設定</a></li><li><a href="#toc5" tabindex="0">電卓の各ボタンをv-forで自動作成</a></li><li><a href="#toc6" tabindex="0">クリックイベント書き換え</a></li><li><a href="#toc7" tabindex="0">vue使用のためv-model、idの設定</a></li></ol></li><li><a href="#toc8" tabindex="0">JavaScript</a></li><li><a href="#toc9" tabindex="0">デモ</a></li><li><a href="#toc10" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずはじめに<a href="https://nyanblog2222.com/programming/javascript/4496/" target="_blank">前回でも</a>説明しましたが、電卓の機能を説明します。<br>その後、vue.jsに書き換える手順を説明します。</p>



<p>また、CSSに関しては前回の記事より変更がありませんので今回は割愛させていただきます。</p>



<h3 class="wp-block-heading"><span id="toc2">電卓の機能</span></h3>



<p>作る電卓の機能は次のとおりです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list"><li>四則演算ができる</li><li>Cキーで初期化</li><li>＝で計算した後<br>数字の場合、初期化したあと数字入力<br>演算子の場合、結果はそのまま使用</li><li>最初のキーが”0”、&#8221;.&#8221;、&#8221;+-×/&#8221;の場合、<br>あらかじめ0が入力されている前提で式に入力</li></ul>
</div>



<p>完成イメージはこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="(max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>HTMLコードです。</p>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="icon" href="https://nyanblog2222.com/wp-content/themes/blogtemplate/images/favicon.ico">
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head>

&lt;body>
  &lt;div id="app">
    &lt;h1 id="header">電卓&lt;/h1>
    &lt;div id="calc">
      &lt;div>
        &lt;input readonly v-model="result" type="text">&lt;button v-on:click="c_click">C&lt;/button>
      &lt;/div>
      &lt;div v-for="row in dataArrays">
        &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
      &lt;/div>
    &lt;/div>
  &lt;/div>
&lt;/body></code></pre>



<h3 class="wp-block-heading"><span id="toc4">vue.jsの設定 → CDNでの設定</span></h3>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head></code></pre>



<p>今回vueを使用するため、6行目にheadタグにCDN設定を追加しました。</p>



<p>注意する点として、<span class="marker-under">他のJavaScriptファイルを読み込む前にCDN設定するように</span>してください。</p>



<p>また、<a rel="noopener" href="https://jp.vuejs.org/v2/guide/installation.html" target="_blank">vue.jsのインストールや最新環境のCDNの情報はこちらから確認してください♪</a></p>



<h3 class="wp-block-heading"><span id="toc5">電卓の各ボタンをv-forで自動作成</span></h3>



<pre class="wp-block-code html"><code>&lt;div v-for="row in dataArrays">
  &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
&lt;/div></code></pre>



<pre class="wp-block-code javascript"><code>// 電卓のボタン
dataArrays: &#91;
  &#91;"7", "8", "9", "÷"],
  &#91;"4", "5", "6", "×"],
  &#91;"1", "2", "3", "-"],
  &#91;"0", ".", "=", "+"],
],</code></pre>



<p>Cボタン以外は<span class="marker-under">vueで自動生成</span>させます。<br>ボタンの順番やデータはJavaScript側で記述します。</p>



<p><span class="marker-under">divタグはデータ1行単位でforを回し、buttonタグは1項目（1データ）単位で回して</span>います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>dataArrayと完成イメージ図を見比べると分かりやすいと思います！</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">クリックイベント書き換え</span></h3>



<p>クリックイベント「onclick」を「v-on:click」に置換します。</p>



<h3 class="wp-block-heading"><span id="toc7">vue使用のためv-model、idの設定</span></h3>



<p>inputタグのidを設定していましたが、v-modelでの設定に変更。<br>divのid=&#8221;app&#8221;を設定。</p>



<h2 class="wp-block-heading"><span id="toc8">JavaScript</span></h2>



<p>こちらがJavaScriptのコードです。</p>



<p>scriptファイルを分けているので、<span class="marker-under">「window.onload」でhtmlの読み込みが終わってから実行する</span>ようにしています。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
  new Vue({
    el: '#app',
    data: {
      result: "0",
      is_calc: false,
      dataArrays: &#91;
        &#91;"7", "8", "9", "÷"],
        &#91;"4", "5", "6", "×"],
        &#91;"1", "2", "3", "-"],
        &#91;"0", ".", "=", "+"],
      ],
      operators_list: &#91;"÷", "×", "-", "+"  ],
    },
    methods: {
      c_click: function () {
        this.result = "0";
        this.is_calc = false;
      },
      btn_Click: function (val) {
        if (this.operators_list.includes(val)) {
          this.ope_click(val);
        } else if (val === "=") {
          this.equal_click();
        } else {
          this.num_click(val);
        }
      },
      num_click: function (val) {
        if (this.is_calc) this.result = "0";
        this.is_calc = false;

        if (this.result == "0" &amp;&amp; val == "0") {
          this.result = "0";
        } else if (this.result == "0" &amp;&amp; val == ".") {
          this.result = "0.";
        } else if (this.result == "0") {
          this.result = val;
        } else {
          this.result += val;
        }
      },
      ope_click: function (val) {
        if (this.is_calc) this.is_calc = false;

        if (this.is_ope_last()) {
          this.result = this.result.slice(0, -1) + val;
        } else {
          this.result += val;
        }
      },
      equal_click: function () {
        if (this.is_ope_last()) this.result = this.result.slice(0, -1);

        var temp = new Function("return " + this.result.replaceAll("×", "*").replaceAll("÷", "/"))();
        if (temp == Infinity || Number.isNaN(temp)) {
          this.result = "Error";
        } else {
          this.result = temp;
          this.is_calc = true;
        }
      },
      is_ope_last: function () {
        return this.operators_list.includes(this.result.toString().slice(-1));
      },
    },
  });
};</code></pre>



<h2 class="wp-block-heading"><span id="toc9">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calc_vue1/">こちらがデモページ</a>になります。<br>電卓が表示され、ボタンを押すと実際に計算ができるのでぜひ試してみてください♪</p>



<h2 class="wp-block-heading"><span id="toc10">最後に</span></h2>



<p>いかがでしたでしょうか。vue.jsも主流になっていますので使いこなしていきたいですね！</p>



<p>良ければ別のサンプルページも見てみてくださいね♪</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/4571/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
