Vue のコンポーネント パラメータを渡す構文を使用するにはどうすればよいですか?

コンポーネントパラメータの受け渡しの旅に乗り出す準備はできていますか? それはまさに「ルー・ヤオは馬力を知っている」です。ゆっくり時間をかけて、この分野を一緒に探索しましょう!

まず、コンポーネントのパラメーター受け渡しの基本構文を理解する必要があります。Vue では、コンポーネントのプロパティを表すために「props」という言葉を使用します。これらのプロパティは、「v-bind」ディレクティブを介して親コンポーネントにバインドすることも、親コンポーネントで直接定義することもできます。

例として、「name」というプロパティを持つ「Greeting」という子コンポーネントがあるとします。次に、親コンポーネントで次のように定義できます。

<template>  
  <greeting :name="parentName"></greeting>  
</template>  
  
<script>  
  export default {
      
        
    data() {
      
        
      return {
      
        
        parentName: "世界"  
      }  
    }  
  }  
</script>

この例では、「v-bind」ディレクティブを使用して、「parentName」を「Greeting」コンポーネントの「name」プロパティにバインドします。これにより、「Greeting」コンポーネントはテンプレート内でこの属性を使用できるようになります。

次に、子コンポーネントでこのパラメーターを使用する方法を見てみましょう。子コンポーネントでは、「props」オプションを通じてこのプロパティを宣言できます。例えば:

import Vue from 'vue'  
  
export default Vue.extend({
    
      
  props: ['name'],  
  template: `  
    <div>  
      <h1>Hello {
     
     { name }}!</h1>  
    </div>  
  `  
})

この例では、「name」属性を宣言し、テンプレートでそれを使用します。このように、「Greeting」コンポーネントは、親コンポーネントから渡されたパラメータに従って、さまざまな挨拶を表示できます。

もちろん、コンポーネントのパラメーターを渡す際には、注意すべき詳細がたくさんあります。たとえば、属性名は、camelCase (キャメルケース) や Snake_case (アンダースコア区切り) 形式ではなく、ケバブケース (ハイフン接続) 形式にする必要があります。さらに、プロパティではデフォルト値、タイプ、バリデーターなどを設定することもできます。これらの詳細を詳しく知りたい場合は、Vue の公式ドキュメントの「コンポーネント パラメーターの検証」セクションを確認してください。

次に、さらに興味深い例をいくつか見てみましょう。「Image」という子コンポーネントがあり、このコンポーネントには、表示される画像のパスを表す「src」というプロパティがあるとします。次に、親コンポーネントで次のように定義できます。

<template>  
  <image :src="imageSrc"></image>  
</template>  
  
<script>  
  export default {
      
        
    data() {
      
        
      return {
      
        
        imageSrc: "/static/images/example.jpg"  
      }  
    }  
  }  
</script>

この例では、画像のパスを「Image」コンポーネントの「src」プロパティにバインドします。このように、「画像」コンポーネントはテンプレート内のこの属性を使用して画像を表示できます。例えば:

import Vue from 'vue'  
  
export default Vue.extend({
    
      
  props: ['src'],  
  template: `  
    <div>  
      <img :src="src">  
    </div>  
  `  
})

この例では、テンプレートの「src」属性を使用して画像を表示します。もちろん、実際のニーズに応じて、他の属性や関数を追加することもできます。たとえば、「alt」属性を追加して画像の代替テキストを設定したり、「resize」メソッドを追加して画像のサイズを変更したりできます。全体として、これは非常に柔軟なコンポーネントであり、ニーズに応じてその動作をカスタマイズできます。

ここで、別の興味深い例を見てみましょう。これは、ユーザーの詳細を表す「user」というプロパティを持つ「User」というサブコンポーネントです。親コンポーネントで次のように定義できます。

<template>  
  <user :user="currentUser"></user>  
</template>  
  
<script>  
  export default {
      
        
    data() {
      
        
      return {
      
        
        currentUser: {
      
        
          name: "张三",  
          age: 30,  
          email: "[email protected]"  
        }  
      }  
    }  
  }  
</script>

この例では、現在のユーザーの詳細を「User」コンポーネントの「user」プロパティにバインドします。このように、「User」コンポーネントはテンプレート内のこの属性を使用して、ユーザーの個人情報を表示できます。例えば:

import Vue from 'vue'  
  
export default Vue.extend({
    
      
  props: ['user'],  
  template: `  
    <div>  
      <h2>{
     
     { user.name }}</h2>  
      <p>年龄: {
     
     { user.age }}</p>  
      <p>邮箱: {
     
     { user.email }}</p>  
    </div>  
  `  
})

この例では、テンプレートの「user」属性のさまざまな属性を使用して、ユーザーの詳細を表示しています。もちろん、実際のニーズに応じて他の属性や機能を追加することもできます。たとえば、「avatar」属性を追加してユーザーのアバターを設定したり、「followedProjects」属性を追加してユーザーがフォローしているプロジェクトのリストを表示したりできます。全体として、これは非常に柔軟なコンポーネントであり、ニーズに応じてその動作をカスタマイズできます。

おすすめ

転載: blog.csdn.net/2301_77795034/article/details/131133399