-
Notifications
You must be signed in to change notification settings - Fork 918
Description
What problem does this feature solve?
let's imagine an abstract situation when:
- component script has 1-3 functions
- component template has 10 tabs which use almost the same functions from component
We can't use include ./tab-1.pug
, because process editing of file unbearable without hot reloading.
We can't use components system, because between original parent and needed child may be n-count any ancestors. And we will need use big deep paths as $parent.$parent.$parent
or excess props
.
A system in which 10 elements within themselves have similar variables and functions looks cumbersome.
simple example:
<template lang="pug">
wrapper-content(name="settings")
el-scrollbar
el-tabs(v-model="tabActive" wrap-class="height-screen" fixed no-scrollbar)
el-tab-pane(label="Основные" name="basic")
include ./tab-basic
el-tab-pane(label="A1" name="a1")
include ./tab-a1
...
el-tab-pane(label="Z10" name="z10")
include ./tab-z10
</template>
End user experience concludes in situations, when components needs in interchange of templates which has convention of using functionality.
I suggest the using "the template in template" with supporting props src
... and lang
(if it's realistic).
It's will be perfect for components, which have default theme, can change theme and ready for customization.
What does the proposed API look like?
<template lang="pug">
wrapper-content(name="settings")
el-scrollbar
el-tabs(v-model="tabActive" wrap-class="height-screen" fixed no-scrollbar)
el-tab-pane(label="Основные" name="basic")
template(src="./tab-basic")
el-tab-pane(label="A1" name="a1")
template(src="./tab-a1")
...
el-tab-pane(label="Z10" name="z10")
template(src="./tab-z10")
</template>