Vue テストユーティリティを使用して
コンポーネントのプロパティ(props)に
アクセスするためのコードですが、
使い方と対象が若干異なります。
それぞれの違いを解説します。
findComponent
指定されたコンポーネントの
インスタンスを検索します。
検索する対象はコンポーネントの名前、
コンストラクタ、
もしくはオブジェクトです。
例えば、
wrapper.findComponent(Table)は
Tableコンポーネントを直接検索します。
find
findは、CSSセレクタを使って要素を検索します。
HTMLのクラス名、ID、タグ名などを
使用してDOM要素を検索します。
例えば、
wrapper.find(“aClass”)は
クラス名がaClassであるHTML要素を検索します。
getComponent
子コンポーネントを取得します。
親コンポーネントのインスタンスから
直接子コンポーネントを検索し、
インスタンスを取得します。
例えば、
wrapper.findComponent(“aClass”).getComponent(Table)は、
まずクラス名aClassのコンポーネントを検索し、
その中のTableコンポーネントを取得します。
findComponent (重複)
前述の通り、
指定されたコンポーネントのインスタンスを検索します。
wrapper.findComponent(“aClass”).getComponent(Table).props(“modelValue”)
1.findComponent(“aClass”)で
クラス名aClassを持つコンポーネントの
インスタンスを検索します(カスタムコンポーネント)。
2.そのインスタンスの中にある
Tableコンポーネントを
getComponent(Table)で取得します。
3.そのTableコンポーネントの
modelValueプロパティにアクセスします。
wrapper.find(“aClass”).findComponent(Table).props(“modelValue”)
1.find(“aClass”)で
クラス名aClassを持つHTML要素を検索します。
2.そのHTML要素内で、
Tableコンポーネントを
findComponent(Table)で検索します。
3.そのTableコンポーネントの
modelValueプロパティにアクセスします。
実際の動作例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<template> <div class="aClass"> <Table :modelValue="tableData" /> </div> </template> <script> import Table from '@/components/Table.vue'; export default { components: { Table }, data() { return { tableData: 'example data' }; } }; </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import { shallowMount } from '@vue/test-utils'; import MyComponent from '@/components/MyComponent.vue'; import Table from '@/components/Table.vue'; describe('MyComponent', () => { it('should access modelValue prop using getComponent', () => { const wrapper = shallowMount(MyComponent); const modelValue = wrapper.findComponent('.aClass').getComponent(Table).props('modelValue'); expect(modelValue).toBe('example data'); }); it('should access modelValue prop using find', () => { const wrapper = shallowMount(MyComponent); const modelValue = wrapper.find('.aClass').findComponent(Table).props('modelValue'); expect(modelValue).toBe('example data'); }); }); |
まとめ
findComponent(“aClass”).getComponent(Table):
コンポーネントの構造に依存し、
特定のコンポーネント内の子コンポーネントを
取得する場合に使います。
find(“aClass”).findComponent(Table):
HTML構造に依存し、
特定のクラス名を持つ要素内の
コンポーネントを取得する場合に使います。
今の年収に満足していますか?
同じ契約金で業務委託していても
在籍している会社によって給料が違います。
今と同じスキル・業務内容でも
年収が変わるということです。
さらに以下を考慮すると
より年収アップにつながります。
- スキルセットと需要
- 経験と実績
- 業界や地域の市場価値
- 転職時の交渉スキル
転職先の企業の給与体系や
業界の標準的な給与水準を調査し、
給与のみでなく、
福利厚生やキャリア成長の機会、
ワークライフバランスなどの要素も
総合的に考慮することが重要です。
Kindle Unlimitedは、Amazonが提供する
月額定額制の電子書籍サービスを活用します。
また、Kindle Unlimitedには、
体験版が提供されています。
体験版では、一定期間(通常は30日間)に限り、
Kindle Unlimitedのサービスを
無料で利用することができます。
1.豊富な書籍のラインナップ
Kindle Unlimitedには、幅広いジャンルの書籍が
数十万冊以上含まれています。
小説、ビジネス書、自己啓発書、
学術書、漫画など、
様々なテーマや興味に合わせて
多彩な選択肢があります。
2.サービスの内容を体験
体験版では、Kindle Unlimitedの全ての機能を使いながら、
豊富な書籍のラインナップや
読書体験を体験することができます。
自身の読書の好みや
利用頻度に合うかどうかを確認できます。
3.解約が可能
体験版期間中にKindle Unlimitedのサービスに
満足しなかった場合、
期限内に解約することができます。
その場合、追加料金はかかりません。
Kindle Unlimitedでは
さまざまなジャンルの書籍が提供されています。
ITエンジニアとしてスキルを向上させたり
新しい技術を学んだりする際に、
Kindle Unlimitedは
便利な資源となるのでおすすめです。
この記事へのコメントはありません。