首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在nuxt.js中创建我自己的全局变量(使用vuetify)

在nuxt.js中创建我自己的全局变量(使用vuetify)
EN

Stack Overflow用户
提问于 2021-06-26 13:17:55
回答 2查看 175关注 0票数 1

我正在开发一个使用nuxt的应用程序,我厌倦了每次都要使用this.$Vuetify.breakpoint.name ==‘X’在页面中编写if语句来提高响应性。所以我想创建我自己的变量,并将其命名为long variable.here is my code↓

(mynuxtapp/plugins/createCustomVar.js)

代码语言:javascript
复制
  import Vue from "vue";

  Vue.prototype.$bp = Vue.prototype.$vuetify.breakpoint.name;
  console.log(Vue.prototype.$bp);

我已经设置nuxtconfig来运行插件。但它返回一个错误: TypeError: Cannot read property‘’breakpoint‘of undefined。显然,我不能使用"$“访问vuetify,即使我可以在页面中访问它。

我该怎么办?有没有更简单的方法或最佳实践?感谢您阅读最后的问题!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-26 13:57:44

$vuetify属性存在于Nuxt上下文中,而不是Vue原型中。

plugins/下的每个模块都应该返回一个函数,该函数接收Nuxt上下文作为第一个参数。该上下文包含由@nuxtjs/vuetify插件设置的$vuetify对象。

插件API的第二个参数是inject,它允许您使用inject globals into the Nuxt context

所以你的插件应该看起来像这样:

代码语言:javascript
复制
// ~/plugins/myGlobals.js
export default ({ $vuetify }, inject) => {
  // inject makes `$bp` available in context (the `$` prefix is automatically prefixed)
  inject('bp', $vuetify.breakpoint.name)
}

demo

票数 1
EN

Stack Overflow用户

发布于 2021-06-26 13:55:48

首先,您只需注销context对象并查看您拥有的内容,如何?我想您可能会发现Vuetify对象位于其他地方。

代码语言:javascript
复制
export default (context, inject) => {
  console.log('context:', context)
}

有关设置插件的文档,请参阅here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68139477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档