【问题标题】:Access Nuxt custom plugin from Composition API从 Composition API 访问 Nuxt 自定义插件
【发布时间】:2021-06-02 14:36:25
【问题描述】:

我在我的 nuxt 项目中使用 VueClipboard。

https://www.npmjs.com/package/vue-clipboard2

我有一个插件文件 vue-clipboard.js

import Vue from "vue";
import VueClipboard from 'vue-clipboard2';
Vue.use(VueClipboard);

导入到nuxt.config中

plugins: ['@/plugins/vue-clipboard'],

这设置了一个全局变量 $copyText 并且在 nuxt 没有组合 API 我可以做类似的事情

methods: {
  async onCopyCodeToClipboard() {
    const code = 'code'
    await this.$copyText(code)
  },
},

但是在使用组合 API (@nuxtjs/composition-api) 的设置中,当我编写函数时,我无权访问 this.$copyText

const onCopyCodeToClipboard = async () => {
  const code = context.slots.default()[0].elm.outerHTML
  // -> Can't use this here - await this.$copyText(code)
}

那么我如何使$copyText 可以在组合API 中使用?

【问题讨论】:

  • 你应该使用 useContext 来获取插件

标签: vue.js nuxt.js nuxtjs vue-composition-api


【解决方案1】:

我能够通过 Nuxt useContext() 方法让它工作:

import { useContext } from '@nuxtjs/composition-api'

export default function () {
  const { $copyText } = useContext();

  $copyText('code');
}

【讨论】:

    猜你喜欢
    • 2019-09-28
    • 2020-01-28
    • 2020-12-20
    • 2021-04-14
    • 1970-01-01
    • 2021-04-26
    • 2020-03-20
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多