Как подключить файл css без добавления тега style с помощью Vue?

В Vue.js есть несколько способов подключить CSS-файл без использования тега <style>. Рассмотрим каждый из них:

1. Глобальный импорт:

Можно подключить CSS-файл напрямую в главном файле приложения, например main.js:

import Vue from 'vue'
import App from './App.vue'

import './path/to/your.css' // путь к вашему CSS-файлу

new Vue({
  render: h => h(App),
}).$mount('#app')

Таким образом, CSS-файл будет применяться ко всему приложению.

2. Локальный импорт:

Для импорта CSS-файла только в конкретном компоненте нужно использовать @import внутри стилей компонента. Допустим, у нас есть компонент MyComponent.vue:

<template>
  <!-- ваш шаблон -->
</template>

<script>
  // ваш скрипт
</script>

<style lang="scss">
  @import './path/to/your.css'; // путь к вашему CSS-файлу
</style>

CSS-файл будет применяться только к данному компоненту.

3. Динамическое подключение:

Если вам нужно подключать CSS-файлы в зависимости от определенных условий (например, при определенных событиях), можно использовать динамическое подключение. В данном случае вы можете использовать Vue.nextTick() для асинхронной загрузки CSS-файла. Например:

<template>
  <!-- ваш шаблон -->
</template>

<script>
  export default {
    methods: {
      loadCss() {
        const link = document.createElement('link')
        link.rel = 'stylesheet'
        link.href = './path/to/your.css' // путь к вашему CSS-файлу

        Vue.nextTick(() => {
          document.head.appendChild(link)
        })
      },
    },
  }
</script>

<style lang="scss">
  /* можете установить пустые стили или удалить `<style>` тег вообще */
</style>

Здесь мы создаем новый элемент <link> и асинхронно добавляем его в <head> документа.

Таким образом, у вас есть несколько способов подключения CSS-файлов в Vue.js, в зависимости от ваших потребностей. Выберите тот, который лучше всего подходит для вашего проекта.