前提・実現したいこと
Vueの初学者です。初歩的な質問で申し訳ないですが、よろしくお願いします。
現在アイコンのコンポーネントを以下のように使っております。
これを
<trash-can /> <arrow />のように変更したいのですが、アイコンが膨大でコンポーネントの数だけvueファイルを作りたくはないのです。1つのicon.vueコンポーネントから他のコンポーネントを作りたいですがやり方が分かりません。
現在iconコンポーネントの中身は以下のようにimgタグのsrc属性を変えてるだけです。
icon.vueファイル
<template> <img :src="iconImage"> </template> <script> export default { data(){ return { iconImage: require(`~/app/assets/icons/${this.iconName}.svg`) } }, props: { iconName: { type : String, required: true, }, } } </script>
次は実現したいコンポーネントを使う側のコードです。最終的にこのような感じで記述できないかと思ってます。
<template> <div> <trash-can-icon /> <arrow-icon /> </div> </template> <script> import { TrashCanIcon, ArrowIcon } from 'path/to/iconFactory.js' export default { component: { TrashCanIcon, ArrowIcon } } </script>
iconFactory.jsの内容
export const TrashCanIcon = iconFactory('trash-can') export const ArrowIcon = iconFactory('arrow')
しかしここでiconFactoryをどのように実装すれば良いのか分からず途方にくれております。
上記の実現方法について何かしらアドバイスやヒントを頂けないでしょうか。
どうかよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/04 05:19