问题标签 [vue-mixin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - Vue 中的 GraphQL 片段
在描述一个问题和问题之前,基于这个问题,我需要说,它首先是架构问题,我已经用不同的关键字搜索了很多次答案或类似的东西,但总是得到诸如“你的第一个带有 Vue 和 Typescript 的 GraphQL 应用程序”。似乎我有一个更复杂的问题,需要更复杂的方式来回答,而且我相信,通过在那里提问,我至少可以获得我需要的第一个最小答案线索。
另外,如果我重复或问了这个问题,我也很抱歉,之前已经回答过了。通过stackoverflow的基本搜索没有给我任何结果。
所以,假设我们有一个 GraphQL 模式,它包含以下类型
我们在模式中也有查询
及其前端包装器
查询输入类型如下所示
在 7 个不同的 Vue 组件中,我需要根据类型Company
使用 query加载 4 个片段之一companies
。例如,对于下拉输入组件,我需要这个
但对于公司卡组件我需要
等等。
现在,关于 Vue 应用程序。我将 Vue 与 Typescript 以及相关包(例如vue-class-component
和vue-property-decorator
. 为了从模式生成类型,我使用apollo-graphql
. 我设计的应用程序没有在 Vuex 中存储 graphql 实体对象。为此,我使用 mixins。我了解,基于 mixins 使用模式是有风险的,但我使用以下方法将风险降至最低(或者我认为我这样做了)
我声明了 mixin 上下文
然后,当它需要时,我使用 mixin 扩展我的组件。
最后,当我展示了一个代码,它现在在我的应用程序中使用时,我现在可以提出一个问题。
有没有办法使用带有实体参数的单个查询,即使没有 mixins,但使用可重用的 vue+typescript 代码,能够根据变量返回正确的类型?
我不想编写 7 个函数,或者在我的情况下是 7 个 mixin,它们具有 99% 的相同代码并使用相同的 GQL 实体,但它们使用的类型仍然不同。
ps 使用 GraphQL 的主要特点是可以用不同的方式查询不同的实体结构,但是如何减少类似的代码来处理查询并使用一些通用的方法(vuex/mixins)来处理它对我来说仍然是一个谜。相信有很多高素质的前端工程师,能回答这个问题的,我就从这里开始寻找。
先感谢您。
vue.js - 如何在 Vuejs 的 main.js 中使用 Mixin?
我正在尝试使用来自 mixin 的全局信息。我打算访问getNow
组件中的计算道具,但它似乎是undefined
.
主.js:
零件:
vue.js - 如何使用依赖于数据、道具或计算中的字段的方法为 Vue mixin 实现干净的接口
我有这个混音:
该方法和计算属性取决于一个名为 的字段headers
。现在我有两个使用该 mixin 的组件,但其中一个headers
是prop,另一个是计算属性。
我想以某种方式使这个 mixin 自包含,因此它的方法不依赖于用户可能忘记声明的字段。这是一个有点分散的问题,但我想要实现的是一个具有定义明确的接口的 mixin,它的功能没有在导入它的那些组件和它本身之间拆分。有任何想法吗?
typescript - 在@Component 中使用 vue mixin
我正在使用 vue-property-decorator 包,我想在 beforeRouteEnter 钩子中使用 mixin 方法。
我做了什么:
这有一个问题,因为to
, from
,next
并且vm
不会自动分配它们各自的类型。
所以我需要做的是将 beforeRouteEnter 放入 @Component
这解决了类型的问题,它们是自动拾取的。但这带来了另一个问题。@Component 内部没有定义 mixin 方法。它说
我试图在 @Component 中注册 mixins,如下所示:
但这没有帮助。
有什么方法可以让 @Component 中的 beforeRouteEnter 挂钩以某种方式看到导入的 mixins 的方法吗?也许vm
以某种方式扩展mixins?
javascript - Vuejs:使用导入的插件 mixin localy
是否可以在一个组件中使用从 VueJS 插件导入的 mixin?
我创建了一个插件,当我导入它时,我可以从我的所有组件中访问 mixin 的功能。
有没有办法让它只在一个组件中可用?还是所有插件都根据定义向 Vue 添加了全局级功能?
typescript - Vue:定义属性/数据时,mixin的属性/数据不可用
我有一个存储信息的 vue mixin(world
在下面的示例中),我想在几个 vue 组件中访问,而不是每次都显式导入它。
这是示例:
页面显示:
为什么第二个不起作用?这是设计使然吗?有什么比 3. 更好的规避方法吗?
vue.js - Laravel Inertia 中的 Vue mixins
我正在尝试通过 Vue mixin 在 Laravel Inertia 项目上创建一个全局帮助函数,但无济于事:
.
在一个独立的 Vue.JS 项目中,这是可行的。也许在 Inertia 的幕后有一些东西阻止了 mixin 的加载。有人可以帮我理解为什么会这样吗?
谢谢你。
javascript - Vue.js Import mixin 不会在应用程序中导入
请求的模块“./clienteMixin.js”不提供名为“default”的导出
米信
Vue 应用程序
javascript - Vue:Async Apollo mixin 函数打印一个值,但返回未定义
异步/返回未定义的查询在这里很常见,但我已经尝试了所有答案排列,但似乎无处可寻……如果我找不到它,请道歉。
我已将所有 Apollo 突变从我的主要 Vue 代码中取出到一个全局 mixin 中,以便我可以重用,但是我显然没有让其中一个查询的 async/promise 语法正确。
这是混合函数:
这是呼叫观察者。
我尝试过的其他排列只是简单地返回'ret'值而不用承诺包装,并使用
在观察者而不是 then 块中。控制台中的结果总是
我错过了什么?为什么值没有传递给观察者?
谢谢你的任何建议。