フロントエンド開発 - Vue 機能コンポーネント

機能コンポーネント機能コンポーネントはステートレスで、インスタンス化できず、ライフサイクルやメソッドを持ちません。機能コンポーネントの作成も簡単で、テンプレートに関数宣言を追加するだけです。通常、外部データの変更のみに依存するコンポーネントに適しており、軽量であるためレンダリング パフォーマンスが向上します。コンポーネントが必要とするものはすべて、コンテキスト パラメーターを介して渡されます。これはコンテキスト オブジェクトです。特定のプロパティについてはドキュメントを参照してください。ここで props は、バインドされたすべてのプロパティを含むオブジェクトです。

<template functional>
    <div class="list">
        <div class="item" v-for="item in props.list" :key="item.id" @click="props.itemClick(item)">
            <p>{
   
   {item.title}}</p>
            <p>{
   
   {item.content}}</p>
        </div>
    </div>
</template>

親コンポーネントが使用する

<template>
    <div>
        <List :list="list" :itemClick="item => (currentItem = item)" />
    </div>
</template>
import List from  @/components/List.vue
export default {
    components: {
        List
    },
    data() {
        return {
            list: [{
                title:  title ,
                content:  content
            }],
            currentItem:
        }
    }
}

3. スタイル スコープ開発中にサード パーティ コンポーネントのスタイルを変更することは非常に一般的ですが、スコープ属性のスタイル分離により、スコープ属性を削除するか、新しいスタイルを作成する必要がある場合があります。これらのプラクティスには副作用 (コンポーネント スタイルの汚染、優雅さの欠如) があり、css プリプロセッサでのスタイルの浸透を使用して効果を発揮します。>>> または /deep/ を使用して、この問題を解決できます。

<style scoped>
Outer layer >>> .el-checkbox {
  display: block;
  font-size: 26px;

  .el-checkbox__label {
    font-size: 16px;
  }
}
</style>
<style scoped>
/deep/ .el-checkbox {
  display: block;
  font-size: 26px;

  .el-checkbox__label {
    font-size: 16px;
  }
}
</style>

おすすめ

転載: blog.csdn.net/helloyangkl/article/details/129077945