Как сформировать meta-description?

Для формирования мета-описания в Nuxt.js вы можете использовать несколько подходов. Рассмотрим каждый из них подробнее.

1. Формирование статического мета-описания:
В Nuxt.js вы можете указать статическое мета-описание для всех страниц вашего приложения в файле nuxt.config.js. Для этого вам нужно определить объект head внутри модуля export default:

   export default {
     head: {
       meta: [
         {
           hid: 'description',
           name: 'description',
           content: 'Ваше мета-описание здесь'
         }
       ]
     }
   }

В приведенном выше примере мы используем hid для идентификации мета-тега.
Этот параметр позволяет обрабатывать мета-описание динамически с помощью функций, таких как $metaInfo().
Вы также можете использовать другие мета-теги, такие как og:description для получения более детального описания.

2. Динамическое формирование мета-описания:
В Nuxt.js вы можете также динамически формировать мета-описание для каждой страницы с помощью компонента, соответствующего маршруту.
Для этого вы можете использовать хук жизненного цикла created() или метод Vue, называемый геттер metaInfo().

   export default {
     data() {
       return {
         pageTitle: 'Заголовок страницы',
         pageDescription: 'Описание страницы',
       }
     },
     computed: {
       metaInfo() {
         return {
           title: this.pageTitle,
           meta: [
             {
               hid: 'description',
               name: 'description',
               content: this.pageDescription
             }
           ]
         }
       }
     }
   }

В приведенном выше примере мы используем заголовок страницы и описание страницы, которые определены в data() компонента. При переходе на эту страницу мета-описание будет автоматически изменяться.

3. Использование плагинов:
Вы также можете использовать плагины для формирования мета-описания в Nuxt.js. Плагины позволяют вам выполнить любую логику, необходимую для формирования мета-тегов, и затем возвращать объект metaInfo, содержащий соответствующие метаданные.

   // plugins/metaDescription.js
   export default function({ app, route }) {
     let pageDescription = 'Описание по умолчанию'

     if (route.name === 'home') {
       pageDescription = 'Описание главной страницы'
     } else if (route.name === 'about') {
       pageDescription = 'Описание страницы "О нас"'
     }

     return {
       meta: [
         {
           hid: 'description',
           name: 'description',
           content: pageDescription
         }
       ]
     }
   }

В приведенном выше примере мы определили плагин metaDescription.js, который определяет мета-описание в зависимости от текущего пути маршрута. Вы можете создать несколько плагинов для разных страниц и подключить их в nuxt.config.js.

   // nuxt.config.js
   export default {
     plugins: [
       // ...
       { src: '~/plugins/metaDescription.js' }
     ]
   }

С помощью этого подхода вы получаете большую гибкость и управляемость при формировании мета-описание для каждой страницы вашего приложения.

В итоге, формирование мета-описания в Nuxt.js можно реализовать статически, динамически или с использованием плагинов, в зависимости от ваших потребностей.