Rumah > Soal Jawab > teks badan
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粉0233267732024-03-22 13:20:54
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:
类型安全
。但即使在 typed props
ia juga hanya akan menunjukkan amaran konsol dalam binaan pembangunan. Kelebihan menggunakan definisi prop ialah
types
P粉2621135692024-03-22 10:11:21
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.