首頁  >  問答  >  主體

如何在設定函數中存取 $vuetify 實例

有沒有辦法在設定函數中存取 $vuetify (以及任何其他新增的全域)? 有沒有辦法讓可組合項存取它?

  ...
  setup() {
    const { isDesktop } = $vuetify.breakpoints.mdAndUp; // <=== how to get $vuetify
    return { isDesktop };
  },


#
P粉659518294P粉659518294336 天前1037

全部回覆(1)我來回復

  • P粉692052513

    P粉6920525132023-11-18 15:22:30

    可組合取得 vuetify 實例:

    // useVuetify.ts
    import { getCurrentInstance } from 'vue'
    
    export function useVuetify() {
      const instance = getCurrentInstance()
      if (!instance) {
        throw new Error(`useVuetify should be called in setup().`)
      }
      return instance.proxy.$vuetify
    }
    

    將其導入您的元件中:

    <!-- MyComponent.vue -->
    <script lang="ts">
    import { useVuetify } from './useVuetify'
    import { computed } from 'vue'
    
    /*...*/
      setup() {
        const vuetify = useVuetify()
        const isDesktop = computed(()=>vuetify.breakpoints.mdAndUp)
        return { isDesktop }
      },
    /*...*/
    </script>
    

    如果您使用的是Vue <= 2.6.14 + @vue/composition-api 而不是Vue 2.7,請將'vue' 替換為'@vue /composition-api'

    回覆
    0
  • 取消回覆