Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VueUse: 5分で分かる Vue.js 開発の効率化術
Search
Naoki Haba
July 26, 2024
Programming
5
3.6k
VueUse: 5分で分かる Vue.js 開発の効率化術
Vue.js v-tokyo Meetup #21 のLT資料です。
https://vuejs-meetup.connpass.com/event/321431/
Naoki Haba
July 26, 2024
Tweet
Share
More Decks by Naoki Haba
See All by Naoki Haba
Laravel+PHPStanで始める実践的静的解析入門
naokihaba
2
330
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
920
技術で挑む保育現場の課題解決 〜コドモンエンジニアの 開発スタイルと取り組み
naokihaba
1
120
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
1.3k
unplugin-vue-routerで実現する Nuxt 風ファイルベースルーティング
naokihaba
1
140
前職でNestJSを採用して得た体験からの学び
naokihaba
0
400
GitHub_Packagesで型情報を共通化したら素晴らしかった件
naokihaba
0
260
チームで始める_テスト文化のススメ
naokihaba
0
800
不具合に立ち向かう テスト戦略 ~ NestJSで作るCI環境 ~
naokihaba
0
540
Other Decks in Programming
See All in Programming
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
370
Streamlitで実現できるようになったこと、実現してくれたこと
ayumu_yamaguchi
2
270
Understanding Kotlin Multiplatform
l2hyunwoo
0
250
TypeScriptでDXを上げろ! Hono編
yusukebe
4
930
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
Vibe coding コードレビュー
kinopeee
0
400
実践 Dev Containers × Claude Code
touyu
1
120
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
440
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
520
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
180
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
2
520
kiroでゲームを作ってみた
iriikeita
0
140
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Site-Speed That Sticks
csswizardry
10
750
How to train your dragon (web standard)
notwaldorf
96
6.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A designer walks into a library…
pauljervisheath
207
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
750
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Docker and Python
trallard
45
3.5k
Designing for humans not robots
tammielis
253
25k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
4 Signs Your Business is Dying
shpigford
184
22k
Transcript
VueUse: 5分で分かる Vue.js 開発の効率化術 Vue.js v-tokyo Meetup #21
2 みなさん、VueUseをご存知ですか?
3 VueUseは Composition APIの可能性を最大限に引き出す究極 のユーティリティコレクションです
4 VueUseの魅力や実際の活用方法について紹介します
5 VueUseの魅力を少しでも感じ取っていただければと思います
6 Copyright © 2015 every, Inc. All rights reserved. アジェンダ
1. 自己紹介 2. VueUseって何?その特徴と機能 3. VueUseの魅力:際立つ特徴と豊富な機能 4. まとめ
7 Copyright © 2015 every, Inc. All rights reserved. アジェンダ
1. 自己紹介 2. VueUseって何?その特徴と機能 3. VueUseの魅力:際立つ特徴と豊富な機能 4. まとめ
8 Copyright © 2015 every, Inc. All rights reserved. 自己紹介
• 羽馬 直樹 / @NaokiHaba • 所属:株式会社 エブリー • コミュニティ • NestJS 日本ユーザーグループ共同主催者 • 最近 • Vue Fes Japan 2024 CFP 提出しました
9 株式会社エブリーについて
10 Copyright © 2015 every, Inc. All rights reserved. エブリーが提供しているプロダクト、ソリューション一覧
エブリーではマルチプロダクトを展開し、あらゆる暮らしの最適化に向き合っています
11 Copyright © 2015 every, Inc. All rights reserved. アジェンダ
1. 自己紹介 2. VueUseって何?その特徴と機能 3. 実際どう使うの?実践的なユースケース 4. まとめ
12 Copyright © 2015 every, Inc. All rights reserved. •
200以上の豊富な関数 • Vue 3と2の両方に対応 • 完全なツリーシェイキング対応 • TypeScriptで記述された型安全な設計 • 柔軟なAPI設計(refs引数、カスタマイズ可 能) • CDN経由で使用可能(バンドラー不要) • SSRフレンドリー • インタラクティブデモ付きドキュメント • 様々なアドオンサポート(Router, Firebase, RxJS など) VueUseって何?その特徴と機能
13 Copyright © 2015 every, Inc. All rights reserved. •
多様な環境に対応 • Vite + Vue 3 • Nuxt 3 + Vue 3 • Webpack + Vue 3 • Nuxt 2 + Vue 2 • Vue CLI + Vue 2 幅広い互換性により、さまざまな プロジェクトやチームのニーズに 柔軟に対応 VueUseって何?その特徴と機能
14 Copyright © 2015 every, Inc. All rights reserved. アジェンダ
1. 自己紹介 2. VueUseって何?その特徴と機能 3. VueUseの魅力:際立つ特徴と豊富な機能 4. まとめ
15 Copyright © 2015 every, Inc. All rights reserved. VueUseライブラリが提供する豊富な関数を紹介します
VueUseの魅力:際立つ特徴と豊富な機能
16 Copyright © 2015 every, Inc. All rights reserved. 時間の都合上、全ての関数*
を紹介することはできないので いくつかピックアップした関数について紹介します *Functions | VueUse にVueUseの全関数一覧がリスト化されています VueUseの魅力:際立つ特徴と豊富な機能
17 Copyright © 2015 every, Inc. All rights reserved. •
useMouse • マウスの位置を追跡する • useToggle • ブール値の状態を切り替える • useClipboard • クリップボードの操作を行う • useGeolocation • ユーザーの位置情報を取得 • useDark • ダークモードの状態を管理する VueUseの魅力:際立つ特徴と豊富な機能 • useAxios • Axiosを使用してHTTPリクエストを行 う • useFocusTrap • モーダルやポップアップ内でフォーカ スを制御する • useNProgress • ページ遷移時のプログレスバーを管 理する • useQRCode • QRコードを生成する • useAsyncValidator • 非同期バリデーションを行う
18 Copyright © 2015 every, Inc. All rights reserved. •
useMouse • マウスの位置を追跡する • useToggle • ブール値の状態を切り替える • useClipboard • クリップボードの操作を行う • useGeolocation • ユーザーの位置情報を取得 • useDark • ダークモードの状態を管理する VueUseの魅力:際立つ特徴と豊富な機能 • useAxios • Axiosを使用してHTTPリクエストを行 う • useFocusTrap • モーダルやポップアップ内でフォーカ スを制御する • useNProgress • ページ遷移時のプログレスバーを管 理する • useQRCode • QRコードを生成する • useAsyncValidator • 非同期バリデーションを行う
19 Copyright © 2015 every, Inc. All rights reserved. •
useMouse • マウスの位置を追跡する • useToggle • ブール値の状態を切り替える • useClipboard • クリップボードの操作を行う • useGeolocation • ユーザーの位置情報を取得 • useDark • ダークモードの状態を管理する VueUseの魅力:際立つ特徴と豊富な機能 • useAxios • Axiosを使用してHTTPリクエストを行 う • useFocusTrap • モーダルやポップアップ内でフォーカ スを制御する • useNProgress • ページ遷移時のプログレスバーを管 理する • useQRCode • QRコードを生成する • useAsyncValidator • 非同期バリデーションを行う
20 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useMouse • useMouse にオプションを渡すだけでマウス座標を取得できる • 内部的にはイベントリスナーを使用して座標を追跡している
21 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useMouse まとめ • 🚀 超簡単実装 • const { x, y } = useMouse() • 👉 たった1行でリアルタイムのマウス位置取得が可能に! • 🔄 自動的なライフサイクル管理: • 👉 マウント時に接続、アンマウント時に自動切断 • メモリリークの心配なし&コード量大幅削減 • 🛠 柔軟なカスタマイズ: • 👉 初期値設定、更新頻度調整、特定要素内での追跡など • useMouse({ target, touch: false })
22 Copyright © 2015 every, Inc. All rights reserved. •
useMouse • マウスの位置を追跡する • useToggle • ブール値の状態を切り替える • useClipboard • クリップボードの操作を行う • useGeolocation • ユーザーの位置情報を取得 • useDark • ダークモードの状態を管理する VueUseの魅力:際立つ特徴と豊富な機能 • useAxios • Axiosを使用してHTTPリクエストを行 う • useFocusTrap • モーダルやポップアップ内でフォーカ スを制御する • useNProgress • ページ遷移時のプログレスバーを管 理する • useQRCode • QRコードを生成する • useAsyncValidator • 非同期バリデーションを行う
23 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useClipboard • リアクティブな状態管理( copied状態など)が可能 • コピー成功後、 "copied"状態が真となる期間もカスタム可能
24 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useClipboard まとめ • 💾 リアクティブなクリップボード読み取り • クリップボードの内容が変わると自動でtextが更新される • 📝 簡単なクリップボード書き込み • 引数に渡した値がクリップボードにコピーされるcopy('Hello, world') • 🛠 柔軟なカスタマイズ • 入力ソースのカスタマイズやコピー後の表示期間設定など細かな 制御が可能
25 Copyright © 2015 every, Inc. All rights reserved. •
useMouse • マウスの位置を追跡する • useToggle • ブール値の状態を切り替える • useClipboard • クリップボードの操作を行う • useGeolocation • ユーザーの位置情報を取得 • useDark • ダークモードの状態を管理する VueUseの魅力:際立つ特徴と豊富な機能 • useAxios • Axiosを使用してHTTPリクエストを行 う • useFocusTrap • モーダルやポップアップ内でフォーカ スを制御する • useNProgress • ページ遷移時のプログレスバーを管 理する • useQRCode • QRコードを生成する • useAsyncValidator • 非同期バリデーションを行う
26 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useAxios • 自動的なリクエスト状態管理 • リアクティブなクエリパラメータ • クエリパラメータが変更されると自動的にリクエストが再送される
27 Copyright © 2015 every, Inc. All rights reserved. VueUseの魅力:際立つ特徴と豊富な機能
useAxios まとめ • 🚀 シンプルな API呼び出し • const { data, error, loading } = useAxios('/api/data') • 👉 たった1行でAPIからデータ取得が可能に! • 🛠 柔軟なカスタマイズ • 👉 リクエストメソッド、ヘッダー、手動トリガーなど細かな制御が可 能
28 Copyright © 2015 every, Inc. All rights reserved. アジェンダ
1. 自己紹介 2. VueUseって何?その特徴と機能 3. VueUseの魅力:際立つ特徴と豊富な機能 4. まとめ
29 Copyright © 2015 every, Inc. All rights reserved. まとめ
• 📈 VueUseが提供する価値 • 🎨 宣言的で読みやすいコード • 再利用可能なコンポーザブル • 🔄 リアクティビティとライフサイクル管理の自動化 • ライフサイクルフックの自動処理 • 🧩 モジュール式の柔軟な設計 • 必要な機能だけを選択して導入可能 • カスタマイズ性の高いオプション
30 Copyright © 2015 every, Inc. All rights reserved. 🎉
VueUseでVue開発をさらに楽しく! まとめ
31 Copyright © 2015 every, Inc. All rights reserved. エブリーからのお知らせ
一緒にサービスを作る仲間を大募集中です! 🔍 エブリー 採用 https://corp.every.tv/recruits • Tech Blogもやってます • 開発部 Xアカウント • エブリー公式オウンドメディア「 every.thing」はこちら https://tech.every.tv/ https://everything.every.tv/ https://x.com/every_engineer
None