Nuxt.jsでFont Awesomeの必要なアイコンだけ読み込んで使う
Nuxt.jsでFontAwesomeを使う方法です。
また全てのアイコンを読み込むと重くなってしまうので、必要なアイコンだけ読み込んで表示させます。
設定方法
Font Awesomeのインストール
% yarn add --dev nuxt-fontawesome @fortawesome/fontawesome-svg-core @fortawesome/vue-fontawesome
モジュール名が@fontawesome/〜
ではなく@fortawesome/〜
になっているので、スペルに注意してください。
アイコンのインストール
必要に応じてアイコンのインストールします。
Solidアイコン
% yarn add --dev @fortawesome/free-solid-svg-icons
Brandsアイコン
% yarn add --dev @fortawesome/free-brands-svg-icons
Font Awesomeの読み込み
// nuxt.config.js
modules: [
'nuxt-fontawesome',
],
/*
** FontAwesome
*/
fontawesome: {
component: 'fa'
},
ここまで設定したら、後は必要なアイコンだけを読み込んで表示させます。
アイコンの表示方法
twitterアイコンの表示例です。
<template>
<div>
<fa :icon="faTwitter" />
</div>
</template>
<script>
import { faTwitter } from '@fortawesome/free-brands-svg-icons'
export default {
computed: {
faTwitter () {
return faTwitter
}
}
}
</script>
アイコンの読み込み
import { faTwitter } from '@fortawesome/free-brands-svg-icons'
twitterアイコンが含まれているモジュールを読み込みます。
computedで設定
export default {
computed: {
faTwitter () {
return faTwitter
}
}
}
戻り値の名前は、twitterアイコンのクラス名をキャメルケースに変えて記述します。
表示タグ
<fa :icon="faTwitter" />