Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Vue.js как подключать html темплейты (https://javascript.ru/forum/library-toolkit-framework/65521-vue-js-kak-podklyuchat-html-templejjty.html)

razorg1991 23.10.2016 20:38

Vue.js как подключать html темплейты
 
Не нашел примеров в документации (гугл тоже не помогает), как подключать темплейты не в коде js?
В документации всегда указывается что-то типа

Vue.component('my-component', {
  template: '<div>A custom component!</div>'
})


А если я хочу к примеру вынести html в отдельный файл для каждой страницы? Как тогда его использовать в компоненте?

Lemme 23.10.2016 23:24

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <template id="my-component">
    <div>hey</div>
  </template>

  <div id="app">
    <my-component></my-component>
  </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.min.js"></script>
  <script>
    Vue.component('my-component', {
      template: '#my-component'
    })

    new Vue({
      el: '#app'
    })
  </script>
</body>
</html>

razorg1991 24.10.2016 11:00

Я не совсем правильно задал вопрос. Я хочу использовать vue-router. Каждый темплейт (кусок html) я хочу положить в общую папку на сервере (к примеру pages). По нужному роуту, я хочу грузить/подлючать компонент с логикой (эта часть в принципе понятна), который в свою очередь должен подтянуть темплейт с папки сервера (вот здесь возникают проблемы). Я не хочу растянуть основной html файл до очень больших размеров и описывать в нем сразу все темплейты.

destus 24.10.2016 14:31

Цитата:

который в свою очередь должен подтянуть темплейт с папки сервера (вот здесь возникают проблемы)
вебпак передавал привет
template: require('./path/to/templatefile.html')

razorg1991 24.10.2016 20:22

Цитата:

Сообщение от Rise (Сообщение 432810)
В Vue оказывается даже templateURL нет... пфф, я думал нормальный фреймворк...

Покурив еще документации, понял что в Vue нет понятия template, а есть понятие компонент http://vuejs.org/2015/10/28/why-no-template-url/ соответственно templateURL нет. В принципе философия понятна, субъективное мнение по этому поводу - норм, пойдет.

А вот теперь начинается самое интересное.

http://vuejs.org/guide/single-file-components.html
http://vuejs.org/guide/components.html#Async-Components

Т.е. асинхронно подключать (грузить с сервера) компоненты можно.
И вот тут
Цитата:

Сообщение от destus (Сообщение 432815)
вебпак передавал привет

И теперь я понимаю, что достаточно простой Vue, медленно переходит в охренительно сложный webpack! :blink:

И прочитав вот это

http://webpack.github.io/docs/code-splitting.html

пока что нифига не понял :cray:

Т.е. опять-таки, не могу понять технику асинхронной загрузки компонентов.

destus 25.10.2016 17:35

razorg1991,
Цитата:

И теперь я понимаю, что достаточно простой Vue, медленно переходит в охренительно сложный webpack!
Возьми какой-ниубдь boilerplate и используй https://github.com/vuejs-templates/webpack

ZapevalovAnton 20.01.2017 11:26

Вот хорошая статья о способах работы с шаблонами в Vue.js 2.


Часовой пояс GMT +3, время: 16:31.