Vuepress - Добавить компонент на каждую страницу

Документация по этому поводу довольно короткая. Я хочу добавить компонент Vue на каждую страницу приложения без необходимости вручную объявлять его в каждом шаблоне.

Мне удалось добавить enhanceApp.js файл и добавить к нему:

import MyComponent from './components/my-component'

export default ({
  Vue,
  options,
  router,
  siteData
}) => {
  Vue.component('MyComponent', MyComponent)
}

Приложение запускается, но я нигде не вижу компонента. Какие-нибудь советы или другие способы добиться этого? Спасибо!


person Doge    schedule 12.12.2018    source источник


Ответы (2)


Вам не нужно помещать его в enhanceApp.js, достаточно просто наличия компонента в /.vuepress/components.

Хотя, если вы хотите хранить их вне этой папки, это может быть способ узнать о них Vuepress.

Используйте его в файле md, как в шаблоне Vue,

<MyComponent></MyComponent>
person Hiram K. Hackenbacker    schedule 12.12.2018
comment
Это как раз моя проблема. Я не хочу добавлять его вручную в каждый файл MD, но добавляю его автоматически на каждую новую страницу. - person Doge; 12.12.2018
comment
Ах да, я этого не заметил. Единственный способ, который я могу придумать, - это добавить его в Layout.vue, к которому вы получаете доступ, извлекая тему Vuepress, но тогда вы должны вручную обновиться, когда появится новая версия Vupress (или пропустите обновления). - person Hiram K. Hackenbacker; 12.12.2018
comment
У вас должно быть много страниц! - person Hiram K. Hackenbacker; 12.12.2018
comment
Да, я думаю, мне действительно нужно было бы удалить тему, что в конечном итоге стало бы головной болью. Да, у меня есть несколько страниц: D Все равно спасибо - person Doge; 12.12.2018

Это старый вопрос, и он может относиться только к V1, но выполнить его просто.

  1. Добавьте свой компонент Vue в .vuepress/components как обычно
  2. In .vuepress/config.js add the following:
    module.exports = {
    
      // rest of config...
    
      globalUIComponents: [
        'YourComponent'
      ]
    }
    
    Don't even need to import your component.

Дополнительную информацию см. В документации.

person Mike W    schedule 28.07.2020
comment
Это лучше. Намного легче. - person Sakamoto Poteko; 09.01.2021