0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

308日目 初めてのVue.js + TypeScript + API 社畜♀

Last updated at Posted at 2025-02-21

初めてのVue.jsとTypeScript

Vue.js + TypeScriptとは?

✅ Vue.js: Webアプリを作るためのJavaScriptフレームワーク
✅ TypeScript: JavaScriptに「型」をつけたもの(エラーが減る&開発しやすくなる)

Vue.jsとTypeScriptを組み合わせるメリット
・型チェックでエラーを防げる
・コードの補完が効く(開発が楽になる)
・チーム開発でもバグが減る

Vue3 + TypeScript + APIでよく使う定番関数・機能まとめ

関数・処理 役割
ref() 変数をリアクティブにする(単一の値向け)
reactive() オブジェクト・配列をリアクティブにする
computed() 値を自動計算してくれる(APIから取得したデータを加工して表示するのにcomputed()が便利)
watch() 変数の変更を監視して処理を実行(入力値が変わるたびにAPIを叩く時に使う)
onMounted() コンポーネントが表示された時に実行
onUnmounted() コンポーネントが削除された時に実行
onUpdated() コンポーネントのデータが更新された時に実行
props 親 ⇒ 子にデータを渡す
emit 子 ⇒ 親にイベントを送る
defineProps() setup()内でpropsを使うための関数
defineEmits() setup()内でemitを使うための関数
useStore() Piniaを使って状態を管理
fetch() / axios.get() APIからデータを取得
axios.post() APIにデータを送信
Pinia アプリ全体の状態管理(VueではPiniaを使うとAPIから取得したデータをグローバル管理できる)

エディターの初期化(initEditor())

✅ ref()でHTML要素を取得
✅ onMounted()でコンポーネントが表示されたときにエディターを初期化

APIからデータを取得(GET)

✅ axios.get()でAPIからデータを取得
✅ onMounted()でコンポーネントが表示されたら実行

Vueのライフサイクルでよく使う関数

onMounted(): コンポーネントが表示時に実行
onUnmounted(): コンポーネントが削除された時に実行
onUpdated(): コンポーネントのデータが更新された時に実行

✅ APIを叩くときにonMounted()をよく使う

Vue.js + TypeScriptにおける async / await の基本と使い方

1.async / await とは?

📌 async / await を使う理由
・APIのデータ取得や非同期処理を簡単に書ける
・コードが読みやすくなる

✅ 非同期処理とは?
すぐに結果が出ない処理を、待たずに実行できるようにする仕組み(例: API通信、DB操作)

2.async / await の基本

❌ awaitなし(悪い)
⇒ APIのデータが取れる前にconsole.logが実行されてしまう

✅ async / await を使う(正しい)
⇒ awaitをつけると、データ取得が終わるまで待ってくれる
関数に async をつけないと await は使えない

3.Vueコンポーネントで async / await を使う

📌 onMounted()でAPIを取得
⇒ onMounted(): コンポーネントが表示されたらAPIを叩く

4.await を Promise.all()で並列処理

通常、APIを1つずつ待つと時間がかかることがある。
Promise.all()を使うと複数のAPIを同時に実行できる。
⇒ 待ち時間を短縮

5.async / await を使うイベント処理

ボタンをクリックした時にAPIを実行することもよくある。
VueでAPIを使うなら async / await は絶対に必須!
📌 awaitをボタンクリックイベントで使う

awaitをつけることで、APIのデータ取得が終わるまで待てる!

✅ ボタンをクリックするとhandleClick()が実行される
✅ 送信中はボタンをdisabledにして2回押せないようにする

6. async / await / watch()を組み合わせる

データの変更を監視して、非同期で処理を実行したいときにwatch()を使う
入力値が変わるたびにAPIを実行できる
📌 watch()でデータが変わったらAPIを取得

7. computed()でデータを加工

APIから取得したデータを加工して表示するのにcomputed()が便利
✅ データを計算・加工するときはcomputed()を使う

8. Piniaでグローバルなデータ管理

VueではPinia(ピニア)を使うとAPIから取得したデータをグローバル管理できる
✅ Piniaを使うと、複数のコンポーネントでAPIデータを共有できる

Vue + TypeScript + APIでは「エラーを防ぐ」「処理を共通化する」のが大事!

TO BE CONTINUED

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?