如何在设置函数中访问 $vuetify 实例

Lau*_* B. 5 vue.js vuejs2 vuetify.js vue-composition-api

有没有办法在设置函数中访问 $vuetify (以及任何其他添加的全局)?有没有办法让可组合项访问它?

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

Yue*_*JIN 9

可组合获取 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
}
Run Code Online (Sandbox Code Playgroud)

将其导入您的组件中:

<!-- 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>
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Vue <= 2.6.14 +@vue/composition-api而不是 Vue 2.7,请替换'vue'为'@vue/composition-api'