親コンポーネントで、プロパティ(test)を指定したものにだけ、center-textというクラスをつけれるようにしたいです。
ごめんなさい、HTMLの属性を取得してクラスの適用する方法は分からないです。
代替え案で申し訳ないですが、
親コンポーネントからv-bind
で、子コンポーネントにデータを渡せば可能だと思います。
下記サンプル、
//ParentComponent.vue
<child :message="'左寄せ'" :isCenter="false" />
<child :message="'中央寄せ'" :isCenter="true" />
の:isCenter="false"
で子コンポーネントに中央寄せかを伝え、
子コンポーネントでは
<div class="child" :class="{ center: isCenter }">
の:class="{ center: isCenter }"
でclass名が「center」を追加するのか決めています。
以下、サンプルと実行結果です。
vue
1//ParentComponent.vue
2
3<template>
4 <div class="parent">
5 <hr />
6 <child :message="'左寄せ'" :isCenter="false" />
7 <hr />
8 <child :message="'中央寄せ'" :isCenter="true" />
9 <hr />
10 </div>
11</template>
12<script>
13import child from "./ChildComponent.vue";
14export default {
15 name: "Parent",
16 components: { child }
17};
18</script>
19<style lang="scss">
20.parent {
21 background-color: blue;
22 text-align: left;
23}
24</style>
25
vue
1//ChildComponent.vue
2
3<template>
4 <div class="child" :class="{ center: isCenter }">
5 <span class="block-area">{{ message }}</span>
6 </div>
7</template>
8<script>
9export default {
10 name: "Child",
11 props: {
12 message: {
13 type: String,
14 default: null
15 },
16 isCenter: {
17 type: Boolean,
18 default: false
19 }
20 }
21};
22</script>
23<style lang="scss">
24.center {
25 text-align: center;
26}
27.child {
28 background-color: red;
29 .block-area {
30 background-color: green;
31 color: white;
32 }
33}
34</style>
35
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/02 23:27
2020/09/05 11:22