こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Vueで Card型 の Atomic Componentを作成する方法について解説していきます。
目次
Vueで Card型 の Atomic Componentを作成する方法
Card型 の Atomic Component の要件定義
今回、作成するCard型 の Atomic Component の要件定義をまとめると、次のとおりです。
- icon画像と、MainMessage、Description(SubMsg・説明文) の 3つの構成要素からなるCard型のComponent
- iconImage, MainMsg, Description の 3つは、Propsで設定できる。
- iconStyle, MainMsgStyle, DescriptionStyleなどの CSSもPropsで設定できる。
Card型 の Atomic Component の SampleCode
<!-- AppealMsgCard_Component -->
<template>
<div :style="cardStyle">
<div :style="iconWrapperStyle">
<img :src="svgIcon" :alt="iconAltName" :style="iconStyle" />
</div>
<div class="appeal_card_msg_block">
<div v-text="mainMsg" :style="mainMsgStyle"></div>
<div v-text="description" :style="descriptionStyle"></div>
</div>
</div>
</template>
<script>
export default {
name: "AppealMsgCard",
components: {},
// カラーとアイコンとタイトルと説明を入力する
props: {
// 1. icon情報を Propsで受け取る
svgIcon: {
required: true,
},
// 2. img の alt属性
iconAltName: {
type: String,
default: "",
},
// 3. Main の Msg
mainMsg: {
type: String,
default: "",
required: true,
},
// 4. Sub の Msg (説明文)
description: {
type: String,
default: "",
},
// 5. Card 全体の Style
cardStyle: {
type: Object,
default: () => {
return {
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
flexWrap: "nowrap",
gap: "12px",
width: "300px",
height: "220px",
margin: "20px",
borderRadius: "5px",
backgroundColor: "#fff",
boxShadow: "0 3px 6px #ccc",
};
},
},
// 6. Icon_Image の Style
iconStyle: {
type: Object,
default: () => {
return {
color: "#1C92FF",
width: "106px",
height: "77px",
};
},
},
// 7. Icon_Wrapper の Style
iconWrapperStyle: {
type: Object,
default: () => {
return {};
},
},
// 8. Main の Msg の Style
mainMsgStyle: {
type: Object,
default: () => {
return {
color: "#1C92FF",
};
},
},
// 9. Sub の Msg (説明文) の Style
descriptionStyle: {
type: Object,
default: () => {
return {};
},
},
},
data() {
return {};
},
};
</script>
<style scoped>
.appeal_card_msg_block {
display: flex;
flex-direction: column;
}
</style>
SVGのアイコン素材について
SVGのアイコン素材については、以前の記事で取得する方法などを紹介しています。
JavaScript書籍 Ver. 中級-上級者向け
JavaScript書籍 Ver. 初級者向け
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!