分かりすぎるVue.jsチートシート


#自己紹介
むちゃんです。
関西を拠点に活動しているフロントエンドエンジニアです。

HAL大阪の2回生です:boy_tone2: (2020.9.29現在)

イベントなど回っているので是非大阪辺りの方は会いましょう！!


#1...JSフレームワークについて


**「Angular」,「React」,「Vue」この3個がJS人気フレームワークです。**
今回はその中のVueについて詳しく話していきたいと思います
![js.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493204/1a9bd77d-d707-d3c1-ad60-362cf2a78274.jpeg)


[Vueの公式ドキュメント](https://jp.vuejs.org/v2/guide/index.html)

#2...Vue.jsとは?

**<font color="green">Vue.js**は**ユーザーインターフェース**を構築するための**JavaScriptのフレームワーク**です。
最近では**React**、**Angular**、**Vue.js**がJavaScriptの人気フレームワークとして定着してきています。
その中でもVue.jsは初心者に優しく比較的に学習しやすい事もあり現在の国内での人気は頭一つ抜けている印象があります。


##Vue.jsの特徴

・コンポーネントの再利用性が高い
・学習コストが低く、取っ付きやすい
・拡張性が高い



##3...Vue.jsで抑えとくべきポイント

###①Vuex
 **Vuex** は Vue.js アプリケーションのための 状態管理パターン + ライブラリです。
※貯蔵庫的な役割と思っていいです。

**詳しいのは公式**=>https://vuex.vuejs.org/ja/

####Vuexの流れ(図解)

![vuex.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493204/ea597384-0610-9fb1-0c72-073877ca7e84.png)

①componentでdispatchする
②actionsでAPIデータのやり取りする
③それをcommitしてmutationsを呼ぶ
④mutationsでデータの値変える
⑤するとstateの値が変わる

ざっくりした流れですが公式の補足程度で見てもらえると嬉しいです。


⭐️おすすめ
**[初めてのアウトプット]**
・[爆速理解！超簡単Vuex入門①](https://qiita.com/aya02/items/933c6c55b8e4801f150a)
<hr>
###②基本的に使うオブジェクト構成


構造だけまとめているので詳しいことは公式で確認してください。

```sample.js
ver vm = new Vue({
  el: 'app',
// ①使用するデータ
  data: {
    name: 'note',
    price: 500
  },
// ② 算出プロパティ
  computed: {
     isPrice: function () {
      return this.price / 2;
    }
  },
  // ③ 使用するメソッド
  methods: {
    isPrice: function() {
      return this.price / 2;
    }
  }
})
```
・[※thisについての記事](https://tadaken3.hatenablog.jp/entry/vue-scope-this)


#### data（使用するデータ）
```sample.js
var vm = new Vue ({
  el: '#app',
  data: {  //data: { プロパティ名： 値 }
    name: 'note',
    price: 500
  }
})
```

```samole.html
<div id="app">
  <p>{{ name }}</p>
</div>
```

####computed　（算出プロパティ）

```sample.js
var vm = new Vue ({
  el: '#app',
  data: {
    name: 'note',
    price: 500
},

  computed: {
    // isPriceを定義
    isPrice: function () {
      return this.price / 2;
    }
  }
})
```

```sample.html
<div id="app">
  <!-- 250が表示される -->
  <p>{{ isPrice }}円</p>
</div>
```

####methods（メソッド）
```sample.js
var vm = new Vue ({
  el: '#app',
  data: {
    name: 'note',
    price: 500
},
  methods: {
    // メソッドisPriceを定義
    isPrice: function() {
      return this.price / 2;
    }
  }
})
```


```sample.html
<div>
  <!-- ボタンをクリックするとisPrice関数が実行 -->
  <button @click="isPrice()">半額</button>
  <!-- 250円と表示 -->
  <p>{{ price }}円</p>
</div>
```
####computedとmethodsの違い

・[算出プロパティとメソッドの使い分け](https://public-constructor.com/vuejs-computed-property/)

#結論 ＆ 資料

**この辺りをある程度理解できればアウトプットに全力を注いでいいと思います。**


**⭕️　アウトプットやオススメの記事一覧**

・[Vue.jsを100時間勉強して分かったこと](https://qiita.com/kskinaba/items/3e8887d45b11f9132012)
・[5分でわかるVue.js基礎の基礎](https://qiita.com/kiyokiyo_kzsby/items/ce9fe8b72953584fecee)
・[2019年版Vue.jsを使ってる人には必ず知っていてほしいVue.jsの武器](https://qiita.com/kahirokunn/items/6b4834b9a13406535f32)
・[Vue-routerを使って、SPAをシンプルにはじめてみる](https://qiita.com/567000/items/d6a7c694a370dc92e774)
・[vueとexpressでSPAを作る](https://qiita.com/y4u0t2a1r0/items/a6aea444efc8e8e65293)


#あとがき
今回は自分なりにVueについて簡潔にまとめてみした:thumbsup_tone2:

次回はReactについてまとめてみたいと思います。

Twitter [<font color="green">@HomgMuchan</font>](https://twitter.com/HongMuchan)  ぜひフォロー待っています❗️