#vue.js #vue-router
#vue.js #vue-router
Вопрос:
Я в этой ситуации:
- старый проект, компилятор npm / vue недоступен
- использование vue в vanilla JS flavor
- используя маршрутизатор, для которого нужны компоненты
- не хотите использовать вонючие введенные строки, которые действительно плохо влияют на читаемость кода
Как я могу использовать фрагменты html в качестве компонентов для vanilla JS vue?
Комментарии:
1. Возможно, заголовок может быть «Как использовать маршрутизатор Vue с Vanilla JS», поскольку использование шаблона vanilla JS HTML — это первое, что обсуждается в документах
2. исправлено, но дело в том, что в документах указано только использование маршрутизатора с введенными строковыми шаблонами, я бы хотел избежать этого подхода, поскольку собственные шаблоны html лучше (как это делает скомпилированный vue)
Ответ №1:
Я нашел совершенно недокументированное решение для создания ванильных компонентов JS с собственным HTML:
1 Чистый HTML (без вонючих введенных строк):
<div id="components" style="display:none"><!--hide component code-->
<div id="component-category-index"><!--component 1 source code-->
CATEGORY INDEX COMPONENT
</div>
<div id="component-article-show"><!--component 2 source code-->
ARTICLE SHOW COMPONENT
</div>
</div>
2 инициализация vanilla JS Vue:
const vue=new Vue({
el: '#vue-app',
....your vue blabla.....
router:new VueRouter({
routes :[
{ path: '/article', component: { template: document.getElementById('component-article-show').outerHTML } },
{ path: '/categories', component: { template: document.getElementById('component-category-index').outerHTML } }
]
})
})
плюсы:
- используйте vanilla JS vue с полными функциональными возможностями компонентов
- разделяйте vue «style-component-logic», но в одном файле, не нарушая этот чистый и простой шаблон
минусы:
весь HTML страницы должен быть в одном файле, поэтому это решение подходит для небольших SPA или отдельных страниц с VUE.