Я пытаюсь создать динамическую форму, которая будет содержать различные поля в зависимости от предварительно установленной переменной, описывающей тип объекта, например, скажем, что переменная vehicleType
с возможными значениями CAR
, BOAT
, AIRPLANE
и т. Д. ... и в зависимости от выбранного типа транспортного средства формы значительно различаются, поэтому не имеет смысла иметь один компонент с кучей символов.
Все формы,однако, содержат некоторые общие поля, которые всегда присутствуют.
Моя текущая идея - создать компонент с именем CommonFields
или что-то подобное, что будет содержать такие общие поля, как (я использую квазар, кстати):
<template>
<q-field>
<q-checkbox id="enabled"
v-model="entity.enabled"
label="Enabled" />
</q-field>
<q-field>
<q-input id="desc"
type="text"
v-model="entity.desc"
label="Description" />
</q-field>
</template>
И затем иметьпользовательский компонент для каждой формы (каждая vehicleType
), которая импортирует и использует компонент CommonFields
.
Мой вопрос: является ли это "vue" способом обработки таких случаев?Моя главная проблема заключается в том, что сам по себе компонент CommonFields
не имеет смысла, только когда он используется внутри компонента формы, поэтому, если я использую его как компонент, может показаться, что я что-то делаю не так.Кроме того, если подумать об этом, мне придется передать данные / реквизиты из корневого компонента в компонент CommonFields
, если в какой-то момент времени ему потребуется реагировать на них.Есть ли способ просто определить шаблон сам по себе, а затем внедрить его, что-то вроде свойства angularjs 1.x templateUrl:
для директив.