Вы можете в значительной степени пройти через все, и вы можете сделать это разными способами. Вот 4 примера:
Примечание: для всех опций мы предполагаем, что у вас есть родительский компонент, который использует следующий синтаксис
<example-component :name="somename" :value="somevalue"></example-component>
Option1: поддерживает как список массивов строк. Значения могут быть чем угодно в JS, то есть числами, строками, объектами, функциями
<template>
<div>
<p v-text="example"></p>
</div>
</template>
<script>
export default {
name: "ExampleComponent",
prop: ['name','value']
}
</script>
Опция 2: наиболее распространенный подход. Каждая опора должна быть определенного типа c. В этих случаях вы можете перечислить реквизиты как объект, где имена и значения свойств содержат имена и типы реквизитов, соответственно
<template>
<div>
<p v-text="example"></p>
</div>
</template>
<script>
export default {
name: "ExampleComponent",
props: {
name: {
type: String,
required: false,
default: 'something'
},
value: {
type: Number,
required: true
}
},
}
</script>
Вариант 3: , который вы можете проверить или в в этом случае передаются Object и значения по умолчанию, возвращаемые фабричной функцией, поэтому у вас всегда будет какое-то значение. Вы даже можете вернуть валидацию validator: function (value) {...}
<template>
<div>
<!-- some value from EventServiceClass-->
<p v-text="example.name"></p>
</div>
</template>
<script>
import EventServiceClass from "./EventServiceClass";
export default {
name: "ExampleComponent",
props: {
example: {
type: Object,
default: function () {
return {name:'a', value: 'b'}
}
},
},
}
</script>
Вариант 4: немного более продвинутый, но в этом примере мы привязываем get и устанавливаем входные свойства формы, которые мы бы использовать для создания компонентов фабричной формы
<template>
<div>
<input
id="name"
type="text"
v-model="name"
class="form--input light"/>
</div>
</template>
<script>
export default {
name: "ExampleComponent",
props: {
name: {
type: String,
default: ""
}
},
computed: {
name: {
get() {
return this.value;
},
set(value) {
this.$emit("input", value);
}
}
}
}
</script>