По сути, я пытаюсь добавить класс CSS к своим компонентам VueJS на основе component-name
, под которым он зарегистрирован (чтобы придать всем этим конкретным типам компонентов один и тот же стиль).
Например:
Vue.component('dragdropfile', {
// This refers to a unique template element (see HTML below)
template: "#dragdropfile-tmp",
props: ['action']
});
И в шаблоне компонента Vue:
<template id="dragdropfile-tmp">
<form action="{{action}}" method="post" enctype="multipart/form-data">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
<div class="dz-message" data-dz-message>
<div class="dz-default">
<!--
According to VueJS docs / forums, "slot" gets replaced by any innerHTML
passed from the incoming component usage.
-->
<slot></slot>
</div>
</div>
</form>
</template>
И, наконец, на странице index.html он используется следующим образом:
<dragdropfile id="someDragDropFiles" action="/upload-please">
Do you have files to upload?<br/>
<b>Drop it here!</b>
</dragdropfile>
Теперь, хотя я мог ввести имя компонента вручную для каждого HTML-шаблона компонента, я хочу автоматизировать это.
Существуют ли какие-либо специальные встроенные {{binding}}
имена, которые Vue использует внутри себя, чтобы я мог вставить имя компонента в получившийся компонент на странице?
Чтобы получить что-то вроде этого:
‹Form class =" dragdropfile "id =" someDragDropFiles "action =" / upload-please "...›
...
‹/form›
Или мне просто нужно передать его самому как новое свойство компонента? Как в:
- Вручную назовите его как
props: ["componentName", ...]
и; - Обозначьте его в шаблоне как
<form class='{{componentName}}' ...>
Это единственно возможный способ?
v1.0.17
, я мог бы обновить его до последней версии на сегодняшний день (v2.1.6
), если оно будет лучше обрабатывать в этом конкретном случае. - person bigp   schedule 15.12.2016