Как вытащить верстку из VUE?

Чтобы вытащить верстку из Vue в Nuxt.js, вам понадобится применить компонентный подход к разработке веб-приложений. В Vue компоненты – это независимые и переиспользуемые блоки кода, содержащие в себе логику и верстку.

Один из способов вытащить верстку из Vue в Nuxt.js - использование отдельного компонента для верстки. Вариантов, как это сделать, довольно много, ниже приведены некоторые из них:

1. Создать новый файл с расширением .vue в соответствующей папке компонентов вашего проекта (по умолчанию это components). В этом файле вы можете написать вашу верстку.

<template>
  <div>
    <h1>Пример верстки в компоненте</h1>
    <p>Это можно использовать в других компонентах.</p>
  </div>
</template>

<script>
export default {
  // Здесь может быть ваша логика
}
</script>

<style>
/* Здесь может быть ваш стиль */
</style>

2. Если вы хотите использовать верстку в нескольких местах, вы можете создать отдельный файл с расширением .vue и использовать его как шаблон для других компонентов. В этом случае вы можете использовать атрибут is для включения содержимого файла внутри другого компонента.

<!-- Ваш шаблон -->
<template>
  <div>
    <h1>Пример верстки внешнего шаблона</h1>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  props: ['message']
}
</script>

<!-- Компонент, использующий шаблон -->
<template>
  <div>
    <my-template is="h1" :message="myMessage" />
    <my-template is="p" :message="myMessage" />
  </div>
</template>

<script>
import MyTemplate from '@/components/MyTemplate.vue'

export default {
  components: {
    MyTemplate
  },
  data() {
    return {
      myMessage: 'Это сообщение из родительского компонента'
    }
  }
}
</script>

3. Для более простых случаев, когда вам просто нужно использовать часть верстки, вы можете использовать слоты (slots) в компонентах Vue. Слоты позволяют передавать верстку из родительского компонента в дочерний компонент.

<!-- Родительский компонент -->
<template>
  <div>
    <h1>Пример компонента со слотами</h1>
    <ChildComponent>
      <template #header>
        <h2>Заголовок</h2>
      </template>
      <template #content>
        <p>Это контент слота</p>
      </template>
    </ChildComponent>
  </div>
</template>

<script>
import ChildComponent from '@/components/ChildComponent.vue'

export default {
  components: {
    ChildComponent
  }
}
</script>

<!-- Дочерний компонент -->
<template>
  <div>
    <slot name="header"></slot>
    <slot name="content"></slot>
  </div>
</template>

Все эти способы позволяют вытащить верстку из Vue и использовать ее в Nuxt.js, поддерживая декларативную синтаксис Vue и возможности компонентного подхода. Выберите наиболее подходящий метод в зависимости от вашей конкретной задачи и архитектуры приложения.