问题标签 [vue-composition-api]

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.

0 投票
1 回答
171 浏览

javascript - 新的 Vue 组合 API 无法识别函数

我们正在尝试将一个简单的 SFC 转换为使用新的 Vue CompositionAPI。这段代码完美无瑕:

将其转换为新的 CompostionAPI 如下所示:

但是,每次我尝试运行这个 Vue 时都会抱怨这$q.screen.width不是一个函数。我在这里做错了什么?

0 投票
1 回答
31 浏览

javascript - 为什么从模板或观察者调用时 this 范围会发生变化?

关于我之前包含所有代码的问题,我想知道为什么它可以正常工作:

但这不会:

当观察者被调用时,变量$q变为undefined,当从模板调用相同的函数时,情况就不同了。似乎this范围正在以setMiniState调用函数的方式发生变化。

解决方法 1

setMiniState如果参数width可用,请签入函数:

解决方法 2

始终发送statewidth参数:

我是 javaScript 的新手,并试图了解正在发生的事情。感谢您对如何最好地处理这种情况的帮助和/或建议。

0 投票
1 回答
3010 浏览

javascript - Vue watch TypeScript错误TS2769:没有重载匹配这个调用

考虑以下代码:

TypeScript 抛出此错误:

TS2769:没有重载匹配此调用。
重载 1 of 3,'(来源:SimpleEffect,options?:Pick,“deep”|“flush”>|undefined):StopHandle',给出了以下错误。'"$q.screen.width"' 类型的参数不能分配给 'SimpleEffect' 类型的参数。

重载 2 of 3, '(source: WatcherSource, cb: WatcherCallBack, options?Partial | undefined): StopHandle', 给出了以下错误。'"$q.screen.width"' 类型的参数不能分配给 'WatcherSource' 类型的参数。

重载 3 之 3,'(来源:WatcherSource[],cb:(newValues:unknown[],oldValues:unknown[],onCleanup:CleanupRegistrator)=> any,options?:部分|未定义):StopHandle',给出以下错误。'"$q.screen.width"' 类型的参数不能分配给 'WatcherSource[]' 类型的参数。

这是针对以下代码行:

就目前而言,我将 astring交给watch函数而不是WatcherSource<any>. 我尝试了以下方法,但都失败了:

解决这个问题的正确方法是什么?

0 投票
1 回答
1424 浏览

vue.js - 如何在 vue composition api 中使用激活和停用?

如何在 vue 组合 api 中使用activateddeactivated保持活动事件?

我在文档中找不到任何参考资料

0 投票
0 回答
920 浏览

typescript - 使用 typescript 进行 vue-composition-api 单元测试,如何在包装器中获取内部设置功能和数据?

目前,我尝试在使用 vue-test-utils 时获取我的 vue 组件中的属性,我已经包含了VueCompositionAPI

这是我的代码:

测试.vue

测试规范.ts

  1. 我可以将包装器类型设置为 any 以获取 wrapper.vm.testVar 但我认为这不是一个好主意
  2. 至于function inter,我不知道如何检索它。想设置模拟笑话功能来检查间隔
0 投票
3 回答
8090 浏览

vue.js - 未捕获的错误:[vue-composition-api] 必须在使用任何函数之前调用 Vue.use(plugin)

考虑以下组合函数:

现在,当我想在Vue中使用isAuthenticated计算属性时,会抛出错误“未捕获的错误:[vue-composition-api] must call Vue.use(plugin) before using any function ”:/router/index.js

组件 API 由文件“/boot/auth.js”中的Quasar Framework 启动文件实例化:

有没有办法在组件之外使用导出的计算属性?

根据这个示例,这是一个使用相同组合 API 的库,它应该在对象isAuthenticated内实例化时工作Router。有更多的人为此而苦苦挣扎,但我似乎无法做到这一点。

0 投票
1 回答
486 浏览

typescript - 返回渲染函数时使用 vue-devtools 和 composition-api(例如 JSX)

自从切换到composition-api并返回一个渲染函数(在我的例子中,使用带有 TypeScript 的 JSX构建以允许在模板中输入支持),我已经失去了vue-devtools检查计算属性的能力。这是因为它们不再由组件直接公开(道具仍然可用)。

如何在模板中获得良好的 TypeScript 支持,同时保留 vue-devtools 检查计算属性的能力?

这是一个使用.vue对 vue-devtools 友好但在模板中不支持 TypeScript 的 composition-api 文件的示例:

SomeComponent.vue

这是一个使用.tsx模板中具有适当 TypeScript 支持的文件的示例,但 vue-devtools 不能再computedProperty直接检查:

SomeComponent.tsx

我怎样才能两全其美?

0 投票
0 回答
285 浏览

javascript - 如何使用 VUE 2 Composition API 正确设置 npm 包?

我有一个使用正在调用的组件的 npm 包inject

在 lib package.json 中,我已设置@vue/composition-api为开发和对等依赖项。

在我的主项目(不是库)中,我正在注册 Composition API 并使用如下提供:

Hub 是一个简单的对象:

但我越来越 Error in data(): "Error: [vue-composition-api] "inject" get called outside of "setup()""

我还准备了一个小演示来演示这个问题: https ://github.com/JiProchazka/composition-api-test

有任何想法吗?

谢谢

0 投票
0 回答
423 浏览

vue.js - 在 Vue 中使用 Composition API 将数据传递和分配给状态

我是网络编程新手,我尝试使用 Vue 制作简单的动态网络。我在使用组合 API 将数据传递和分配给状态时遇到了一点问题。这里的代码段:

主.vue:

孩子.vue:

我需要传递数据并将从 Main.vue 中的 API 获得的数据分配给 Child.vue 中的状态。几天前,我没有尝试使用组合 API,我成功地将数据在父子之间或子到父之间传递,但我对组合 API 感到困惑。我阅读了组合 API 文档,但没有找到任何答案。

0 投票
1 回答
3345 浏览

javascript - 在反应对象上使用只读

假设您有一个reactive想要导出的对象,如此readonly所述。

该方法readonly()似乎不是 VueCompositionAPI 的一部分:

“在 '@vue/composition-api' 中找不到导出 'readonly'

我知道使用时ref您可以简单地使用computed属性

但是对于一个reactive我们不想.value每次都使用的对象,这似乎是不可能的。我在这里错过了一些非常明显的东西吗?