首頁 > 軟體

Vue元件如何設定Props範例詳解

2022-06-09 22:00:38

在 Vue 中構建元件通常需要定義一些屬性,以使元件可以更好複用,在這種情況下會使用 props 來自定義資料來傳遞資料。接下來以一個簡單的元件來介紹如何使用元件 props 。

<CrayonAlert title="友情提示"  description="請輸入真實的資訊" />

如上面程式碼所示,元件定義兩個屬性 title 和 description,元件程式碼如下:

<template>
    <div>
        <h2>{{ title }}</h2>
        <p>{{ description }}</p>
    </div>
</template>
<script>
export default {
    name: "CrayonAlert",
    props: {
        title: {
            type: String,
        },
        description: {
            type: String,
        },
    },
};
</script>

屬性型別

props 不僅限於 String ,還可以是以下型別:

  • Object
  • Array
  • Symbol
  • Function
  • Number
  • String
  • Date
  • Boolean

屬性預設值

在上面程式碼中,當元件沒有傳入相應的屬性值的情況下,會顯示 undefined 或者在模板HTML沒有任何文字,這個時候可以考慮定義一個預設值:

export default {
    name: "CrayonAlert",
    props: {
        title: {
            type: String,
            default: "提示",
        },
        description: {
            type: String,
            default: "描述",
        },
    },
};

設定好預設值後,在沒有傳入任何引數值的時候,會顯示預設值。這種方式在 Vue2 比較常用。

屬性值驗證

跟 Form 資料一樣,元件屬性值也可以對其進行驗證,如下:

export default {
    name: "CrayonAlert",
    props: {
        title: {
            type: String,
            validator(value) {
                return value !== "";
            },
        },
        description: {
            type: String,
            validator(value) {
                return value !== "";
            },
        },
    },
};

Composition API 中設定屬性

在 Vue3 中,引入了一種稱為 Composition API 的新方法。在 Composition API 中,定義 props 使用 defineProps 函數。定義沒有預設值的屬性如下所示:

import { defineProps } from "vue";

const props = defineProps({
    title: {
        type: String,
    },
    description: {
        type: String,
    },
});

設定預設值和在Vue2 中有點類似,如下:

import { defineProps } from "vue";

const props = defineProps({
    title: {
        type: String,
        default: "提示",
    },
    description: {
        type: String,
        default: "描述",
    },
});

為了避免在屬性上設定預設值,可以通過使用 required 欄位來設定屬性為必須項。定義程式碼如下:

import { defineProps } from "vue";

const props = defineProps({
    title: {
        type: String,
        default: "提示",
        required: true,
    },
    description: {
        type: String,
        default: "描述",
        required: true,
    },
});

總結

到此這篇關於Vue元件如何設定Propsx的文章就介紹到這了,更多相關Vue元件Propsx內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com