Vue で FileReader を使って画像のプレビュー表示
はじめに
Vue.js で画像プレビューする方法を整理した。
基本的に たった2ステップ!Vue.js で選択画像をプレビューする方法(サンプルDL可) – console dot log の通り。
TL;DR
<input type="file">
に@change
でイベントハンドラを設定- イベントハンドラ内で
FileReader
のreadAsDataURL
でdata: url
として読み込み - 読み込み完了したら Vue の
data
にdata: url
を設定 <img :src="dataUrl
>` のようにバインドして表示
目次
環境・条件
1 | $ sw_vers |
詳細
冒頭にも書いた通り たった2ステップ!Vue.js で選択画像をプレビューする方法(サンプルDL可) – console dot log を参考にしている。
完成コード
1 | <template> |
簡単な解説
- 初期状態では
dataUrl
がnull
なのでファイル選択のみ表示 - 画像を選択すると
change
イベントが発火し、readImage
が動作 readImage
内でFileReader
を使ってファイル読み込みonload
で、読み込み完了したらdataUrl
に読み込み結果(data: url
)を設定readAsDataURL
でdata: url
として読み込み
dataUrl
が設定されるとv-else
側の画像プレビューに表示が切り替わり<img :src="dataUrl">
で更新されたdataUrl
をソースとして画像を表示
まとめ
<input type="file">
に@change
でイベントハンドラを設定- イベントハンドラ内で
FileReader
のreadAsDataURL
でdata: url
として読み込み - 読み込み完了したら Vue の
data
にdata: url
を設定 <img :src="dataUrl
>` のようにバインドして表示
参考文献
- たった2ステップ!Vue.js で選択画像をプレビューする方法(サンプルDL可) – console dot log
- FileReader - Web API | MDN
- FileReader.readAsDataURL() - Web API | MDN
- FileReader.onload - Web API | MDN
関連記事
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- Vue で子コンポーネントのメソッドをコールする
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- Chart.js(vue-chartjs) で凡例の一部を非表示にする方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア