Vue3のカスタムブロックとは何ですか?

Vue3 の Custom Block は、次のような Vue でカスタム HTML マークアップを作成できる素晴らしい機能です。

<template>  
  <custom-block>  
    <p>这是自定义块的内容</p>  
  </custom-block>  
</template>  
  
<script>  
import {
      
       defineComponent } from 'vue';  
  
export default defineComponent({
      
        
  name: 'CustomBlock',  
  components: {
      
        
    // 在这里注册组件  
  },  
  props: {
      
        
    // 在这里定义组件的属性  
  },  
  setup(props, {
       
        attrs }) {
      
        
    // 在这里定义组件的行为  
    return () => {
      
        
      // 在这里返回组件的 VNode  
    };  
  },  
});  
</script>

お気づきかと思いますが、代わりにマークアップを使用しました。

またはこのような HTML タグ。このマークは私たちが独自に定義した、いわゆるカスタムブロックです。

では、カスタム ブロックにはどのような利点があるのでしょうか? まず、コンポーネントの構造をより明確に表現できるようになり、コードが読みやすく、理解しやすくなります。2 番目に、コンポーネントをあるプロジェクトから別のプロジェクトに移動するなど、コードをより簡単にリファクタリングできるようになります。最後に、マークアップの属性とコンテンツをより自由に選択できるため、スタイルと動作の追加が容易になります。

では、カスタム ブロックを作成するにはどうすればよいでしょうか? まず、defineComponent 関数を使用してコンポーネントを定義する必要があります。この関数は、コンポーネントの名前、登録方法、プロパティ、動作などの情報を含むコンポーネント オプション オブジェクトをパラメータとして受け取ります。このオブジェクトでは、セットアップ関数を定義する必要もあります。この関数は、コンポーネントの動作ロジックを記述するために使用され、コンポーネント VNode を含む関数を返します。最後に、テンプレートで定義したカスタム ブロック タグを使用し、必要な場所にこのコンポーネントを挿入する必要があります。

以下に、単純なカスタム ブロック コンポーネントを作成する方法を示す簡単な例を示します。

<template>  
  <custom-block :text="message">  
    <p>{
   
   { message }}</p>  
  </custom-block>  
</template>  
  
<script>  
import {
      
       defineComponent } from 'vue';  
  
export default defineComponent({
      
        
  name: 'CustomBlock',  
  components: {
      
        
    // 在这里注册组件  
  },  
  props: {
      
        
    message: {
      
        
      type: String,  
      required: true,  
    },  
  },  
  setup(props, {
       
        attrs }) {
      
        
    // 在这里定义组件的行为  
    return () => {
      
        
      // 在这里返回组件的 VNode  
    };  
  },  
});  
</script>

この例では、表示するコンテンツを指定する message 属性を持つ CustomBlock コンポーネントを定義します。テンプレートではタグを使用し、メッセージ属性をバインドします。

マークを付けます。setup 関数では、特別な動作ロジックを追加せず、単に

マークされた VNode。

もちろん、これは非常に単純な例にすぎません。実際のアプリケーションでは、カスタム ブロックをより複雑なコンポーネント構造の基礎として使用して、より豊富で保守しやすいコード構造を作成できます。

上記の単純な例に加えて、カスタム ブロックはより複雑なコンポーネント構造にも使用できます。タイトルとコンテンツを含むカスタム ブロック コンポーネントを作成する、もう少し複雑な例を次に示します。

<template>  
  <custom-block :title="title" :content="content">  
    <h2>{
   
   { title }}</h2>  
    <div>{
   
   { content }}</div>  
  </custom-block>  
</template>  
  
<script>  
import {
      
       defineComponent } from 'vue';  
  
export default defineComponent({
      
        
  name: 'CustomBlock',  
  components: {
      
        
    // 在这里注册组件  
  },  
  props: {
      
        
    title: {
      
        
      type: String,  
      required: true,  
    },  
    content: {
      
        
      type: String,  
      required: true,  
    },  
  },  
  setup(props, {
       
        attrs }) {
      
        
    // 在这里定义组件的行为  
    return () => {
      
        
      // 在这里返回组件的 VNode  
    };  
  },  
});  
</script>

この例では、タイトルとコンテンツのプロパティを持つカスタム ブロック コンポーネントを定義します。テンプレートでは、<custom-block>タグを使用し、title 属性と content 属性をそれぞれ タグ と タグにバインドし<h2>ます<div>setup 関数では、まだ特別な動作ロジックを追加しておらず、それを含む VNode を返し、<h2>それ<div>をマークしているだけです。

この例は少し複雑ですが、カスタム ブロックの使用法と利点をより深く理解するのに役立ちます。必要に応じて独自のカスタム ブロック コンポーネントを定義して、コードをより明確にし、保守しやすくすることができます。

おすすめ

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