Isytiharkan prop dalam tatasusunan dan tatasusunan objek
P粉238433862
P粉238433862 2024-03-21 18:50:02
0
2
379

Saya baru tahu, jangan tentukan sifat komponen seperti ini:

    const props = defineProps({
        id: Number,
        title: String,
        name: String,
    })

Saya boleh melakukan ini:

    defineProps([
        'id',
        'title',
        'name',
    ])

Ini nampaknya tidak perlu type 声明,但是这样做有什么缺点吗? vue是否自己确定每个属性的type?

Saya menggunakan script setup.

P粉238433862
P粉238433862

membalas semua(2)
P粉023326773

Ini lebih daripada sekadar type kenyataan.

Ini ialah fungsi pengesahan prop. Sintaks yang lengkap ialah

const props = defineProps({
    name: String,
    id: [ Number, String ],
    style: {
        type: Object,
        default: ()=>{
            color: "red",
            bg-color: "white"
        },
        validator: function (value) {
            return ['red', 'blue', 'green'].includes(value.color)
        }
    },
})

Jadi keburukan hanya menggunakan prop bernama ialah:

  1. Tanpa 类型安全 。但即使在 typed props ia juga hanya akan menunjukkan amaran konsol dalam binaan pembangunan.

Kelebihan menggunakan definisi prop ialah

  1. Berbilang types
  2. satu prop
  3. Nilai lalai props
  4. Fungsi pengesah tersuai
P粉262113569

Keburukan sudah tentu keselamatan yang lemah.

Adakah vue menentukan jenis setiap hartanah dengan sendirinya? Tak boleh

Apabila menyediakan tatasusunan rentetan, Vue tidak mengesahkan jenis prop yang diluluskan sama sekali, jadi jika digunakan secara salah (yang lebih berkemungkinan berlaku kerana pembangun/masa hadapan lain, anda tidak mempunyai cara untuk mengetahui perkara yang perlu diluluskan tanpa membaca selebihnya kod komponen) anda akan mendapat beberapa ralat masa jalan di suatu tempat dalam komponen dan bukannya ralat/amaran bersih (atau ralat munasabah daripada IDE) tentang nilai yang salah diluluskan sebagai prop

Kebanyakan masa, anda harus menggunakan seberapa banyak definisi prop khusus yang mungkin.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan