Директива v-view
используется для задания текущих элементов View
в качестве родительского свойства.
<Child v-view:parentPropertyName />
<!-- равнозначно: -->
<Child ~parentPropertyName />
<Child v-view:parentArrayPropertyName.array />
<!-- равнозначно: -->
<Child ~parentArrayPropertyName.array />
Существует много компонентов NativeScript
, которые требуют установки свойства в действительный экземпляр View
, что невозможно с использованием шаблона. Использование этой директивы экономит время, не регистрируя новые директивы / ссылки на родительские элементы и не устанавливая родительские свойства вручную.
Чтобы лучше проиллюстрировать, что делает эта директива, давайте посмотрим на компонент RadSideDrawer
из Progress NativeScript UI:
Компонент RadSideDrawer
ожидает, что свойства drawerContent
иmainContent
будут установлены в экземпляры View
, используя директиву v-view
, и он будет выглядеть так:
<RadSideDrawer>
<StackLayout ~drawerContent />
<StackLayout ~mainContent />
</RadSideDrawer>
Без этой директивы у вас бы было что-то вроде:
<RadSideDrawer ref="drawer">
<StackLayout ref="drawerContent" />
<StackLayout ref="mainContent" />
</RadSideDrawer>
{
mounted() {
this.$refs.drawer.nativeView.drawerContent = this.$refs.drawerContent.nativeView
this.$refs.drawer.nativeView.mainContent = this.$refs.mainContent.nativeView
}
}
Что может стать утомительным и очень подвержено ошибкам.