Vue3 セットアップのシンタックス シュガー、親コンポーネントと子コンポーネント間でさまざまなデータ型を渡す方法

Vue3セットアップのシンタックス シュガー、親コンポーネントと子コンポーネント間でさまざまなデータ型を渡す方法

1. 親コンポーネントはシンタックス シュガーを使用して文字列型を子コンポーネントに渡します

        1. 親コンポーネント

msg は、子コンポーネントに渡すために使用されるカスタム変数名であり、 content は、親コンポーネントから子コンポーネントに渡されるデータです。


   
   
    
    
  1. <テンプレート>
  2. <部門>
  3. <こんにちは :msg = "コンテンツ" />
  4. </ div >
  5. </テンプレート>
  6. スクリプト 設定
  7. import { ref } from "vue" ;
  8. 「../components/HelloWorld.vue」から Hello をインポートします
  9. const content = ref ( "それだけです" );
  10. </スクリプト>

        2. サブコンポーネント

シンタックス シュガーでは、渡したデータを props = defineProps ()のメソッドで直接記述し、最終的にテンプレートで呼び出すことができます。


   
   
    
    
  1. < テンプレート>
  2. < 部門>
  3. < h 1 > { { props.msg }} < / h 1 >
  4. < / div >
  5. < / テンプレート>
  6. スクリプト設定
  7. const props = defineProps({
  8. メッセージ :文字列
  9. });
  10. < / スクリプト>

 結局効果はこんな感じ

2. 親コンポーネントはシンタックス シュガーを使用して配列型を子コンポーネントに渡します

1. 親コンポーネントの転送

 コンポーネント内の DateList はサブコンポーネントに渡すために宣言する名前であり、ArrayList はサブコンポーネントに渡すデータです。


   
   
    
    
  1. < テンプレート>
  2. < 部門>
  3. < こんにちは:DateList = "ArrayList" / >
  4. < / div >
  5. < / テンプレート>
  6. スクリプト設定
  7. 「vue」から{リアクティブ}をインポートします
  8. 「../components/HelloWorld.vue」からHelloをインポートします
  9. const ArrayList =リアクティブ([
  10. {
  11. id : 1 ,
  12. 名前 : 「超法規的」 ,
  13. }、
  14. {
  15. id : 2 ,
  16. 名前 : "マッドマン" ,
  17. }、
  18. {
  19. id : 3 ,
  20. 名前 : 「張さん」 ,
  21. }、
  22. ]);
  23. < / スクリプト>

2. サブコンポーネント受信

シンタックスシュガーではprops=defineProps()のメソッドで渡したデータを直接書いて、最後に出力をテンプレートでループすればOK


   
   
    
    
  1. < テンプレート>
  2. < 部門>
  3. < h 1 > { { props.msg }} < / h 1 >
  4. < div v-for = "(item, index) in props.DateList" : key = "item.id" >
  5. { { item.name }}
  6. < / div >
  7. < / div >
  8. < / テンプレート>
  9. スクリプト設定
  10. const props = defineProps({
  11. メッセージ :文字列
  12. 日付 リスト: 配列、
  13. });
  14. コンソール e.log(props.DateList);
  15. < / スクリプト>

レンダリング効果

3. サブコンポーネントはシンタックス シュガーを使用して単語の値を親コンポーネントに渡します

1. サブコンポーネント

 let emigFun = defineEmits(["handLer"]); defineEmits シンタックス シュガーを使用してカスタム イベントを作成し、カスタム イベントに従って渡したい型を渡します (次のように)。下に示された)


   
   
    
    
  1. < テンプレート>
  2. < 部門>
  3. < div @click = "楽しい" >
  4. 子传父
  5. < / div >
  6. < / div >
  7. < / テンプレート>
  8. スクリプト設定
  9. 「vue」から{リアクティブ}をインポートします
  10. let em igFun = defineEmits([ "h​​andLer" ] ); // defineEmits シンタックス シュガー メソッドを使用してカスタム イベントを作成します。
  11. const データ=リアクティブ ([
  12. {
  13. 名前 : 123 ,
  14. id : 1 ,
  15. }、
  16. {
  17. 名前 : 123 ,
  18. id : 1 ,
  19. }、
  20. {
  21. 名前 : 123 ,
  22. id : 1 ,
  23. }、
  24. {
  25. 名前 : 123 ,
  26. id : 1 ,
  27. }、
  28. ]);
  29. const fun = () = > {
  30. emig Fun( "handLer" , dat); //左側はカスタム イベント名で、右側は渡したいデータです
  31. };
  32. < / スクリプト>

2. 親コンポーネント

親コンポーネントは、子コンポーネントによって作成されたカスタム イベントを直接使用し、親コンポーネントのイベント名を追加し、仮パラメータを介して子コンポーネントのデータを正常に取得できます (以下を参照)。


   
   
    
    
  1. < テンプレート>
  2. < 部門>
  3. < こんにちは @handLer = "手" / >
  4. < 部門>
  5. クリックしてサブコンポーネントの値を取得します
  6. < / div >
  7. < / div >
  8. < / テンプレート>
  9. スクリプト設定
  10. 「../components/HelloWorld.vue」からHelloをインポートします
  11. const hand = (v) = > {
  12. コンス ole.log(v);
  13. };
  14. < / スクリプト>

結果を示す

要約する

また、セットアップシンタックスシュガーの使用にはいくつかの問題があります. それについては次の記事で説明します. 第二に, Vueの親子コンポーネントは互いに値を渡します. 初心者が混乱しやすいのは.それらを前後に渡します. あなたの考えを明確にし、時間をかけてください. より良いものは何ですか? 洞察やアイデアがあれば, 以下にコメントしてください.

 

Vue3セットアップのシンタックス シュガー、親コンポーネントと子コンポーネント間でさまざまなデータ型を渡す方法

1. 親コンポーネントはシンタックス シュガーを使用して文字列型を子コンポーネントに渡します

        1. 親コンポーネント

msg は、子コンポーネントに渡すために使用されるカスタム変数名であり、 content は、親コンポーネントから子コンポーネントに渡されるデータです。


   
   
  
  
  1. <テンプレート>
  2. <部門>
  3. <こんにちは :msg = "コンテンツ" />
  4. </ div >
  5. </テンプレート>
  6. スクリプト 設定
  7. import { ref } from "vue" ;
  8. 「../components/HelloWorld.vue」から Hello をインポートします
  9. const content = ref ( "それだけです" );
  10. </スクリプト>

        2. サブコンポーネント

シンタックス シュガーでは、渡したデータを props = defineProps ()のメソッドで直接記述し、最終的にテンプレートで呼び出すことができます。


   
   
  
  
  1. < テンプレート>
  2. < 部門>
  3. < h 1 > { { props.msg }} < / h 1 >
  4. < / div >
  5. < / テンプレート>
  6. スクリプト設定
  7. const props = defineProps({
  8. メッセージ :文字列
  9. });
  10. < / スクリプト>

 結局効果はこんな感じ

2. 親コンポーネントはシンタックス シュガーを使用して配列型を子コンポーネントに渡します

1. 親コンポーネントの転送

 コンポーネント内の DateList はサブコンポーネントに渡すために宣言する名前であり、ArrayList はサブコンポーネントに渡すデータです。


   
   
  
  
  1. < テンプレート>
  2. < 部門>
  3. < こんにちは:DateList = "ArrayList" / >
  4. < / div >
  5. < / テンプレート>
  6. スクリプト設定
  7. 「vue」から{リアクティブ}をインポートします
  8. 「../components/HelloWorld.vue」からHelloをインポートします
  9. const ArrayList =リアクティブ([
  10. {
  11. id : 1 ,
  12. 名前 : 「超法規的」 ,
  13. }、
  14. {
  15. id : 2 ,
  16. 名前 : "マッドマン" ,
  17. }、
  18. {
  19. id : 3 ,
  20. 名前 : 「張さん」 ,
  21. }、
  22. ]);
  23. < / スクリプト>

2. サブコンポーネント受信

シンタックスシュガーではprops=defineProps()のメソッドで渡したデータを直接書いて、最後に出力をテンプレートでループすればOK


   
   
  
  
  1. < テンプレート>
  2. < 部門>
  3. < h 1 > { { props.msg }} < / h 1 >
  4. < div v-for = "(item, index) in props.DateList" : key = "item.id" >
  5. { { item.name }}
  6. < / div >
  7. < / div >
  8. < / テンプレート>
  9. スクリプト設定
  10. const props = defineProps({
  11. メッセージ :文字列
  12. 日付 リスト: 配列、
  13. });
  14. コンソール e.log(props.DateList);
  15. < / スクリプト>

レンダリング効果

3. サブコンポーネントはシンタックス シュガーを使用して単語の値を親コンポーネントに渡します

1. サブコンポーネント

 let emigFun = defineEmits(["handLer"]); defineEmits シンタックス シュガーを使用してカスタム イベントを作成し、カスタム イベントに従って渡したい型を渡します (次のように)。下に示された)


   
   
  
  
  1. < テンプレート>
  2. < 部門>
  3. < div @click = "楽しい" >
  4. 子传父
  5. < / div >
  6. < / div >
  7. < / テンプレート>
  8. スクリプト設定
  9. 「vue」から{リアクティブ}をインポートします
  10. let em igFun = defineEmits([ "h​​andLer" ] ); // defineEmits シンタックス シュガー メソッドを使用してカスタム イベントを作成します。
  11. const データ=リアクティブ ([
  12. {
  13. 名前 : 123 ,
  14. id : 1 ,
  15. }、
  16. {
  17. 名前 : 123 ,
  18. id : 1 ,
  19. }、
  20. {
  21. 名前 : 123 ,
  22. id : 1 ,
  23. }、
  24. {
  25. 名前 : 123 ,
  26. id : 1 ,
  27. }、
  28. ]);
  29. const fun = () = > {
  30. emig Fun( "handLer" , dat); //左側はカスタム イベント名で、右側は渡したいデータです
  31. };
  32. < / スクリプト>

2. 親コンポーネント

親コンポーネントは、子コンポーネントによって作成されたカスタム イベントを直接使用し、親コンポーネントのイベント名を追加し、仮パラメータを介して子コンポーネントのデータを正常に取得できます (以下を参照)。


   
   
  
  
  1. < テンプレート>
  2. < 部門>
  3. < こんにちは @handLer = "手" / >
  4. < 部門>
  5. クリックしてサブコンポーネントの値を取得します
  6. < / div >
  7. < / div >
  8. < / テンプレート>
  9. スクリプト設定
  10. 「../components/HelloWorld.vue」からHelloをインポートします
  11. const hand = (v) = > {
  12. コンス ole.log(v);
  13. };
  14. < / スクリプト>

結果を示す

要約する

また、セットアップシンタックスシュガーの使用にはいくつかの問題があります. それについては次の記事で説明します. 第二に, Vueの親子コンポーネントは互いに値を渡します. 初心者が混乱しやすいのは.それらを前後に渡します. あなたの考えを明確にし、時間をかけてください. より良いものは何ですか? 洞察やアイデアがあれば, 以下にコメントしてください.

 

おすすめ

転載: blog.csdn.net/weixin_64310738/article/details/129034444