问题标签 [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 投票
0 回答
2209 浏览

typescript - 在 Jest 中使用 setTimeout 函数测试 vue 组件

我正在尝试使用 setTimeout 测试去抖动功能。这是一个带有 ajax api 调用的输入。我尝试了 jest.useFakeTimers() 和 jest.runAllTimers() 但没有成功。我还尝试运行 jest.advanceTimersByTime(501) - 因为我的超时时间为 500 毫秒,但仍然没有运气。

表单组件:

和 Form.spec.ts:

和 mockFetch:

0 投票
0 回答
363 浏览

vuex - Nuxt 在插槽中使用组件,vuex 存储未定义

目前我正在使用带有 vue-composition API 的打字稿中的 nuxt 进行开发。利用 element-ui工具提示,我在它的命名槽中放置了一个组件,据说它的名称为 TestComponent。

在组件中,我调用了 vuex 商店

这是预期的吗?

0 投票
1 回答
1096 浏览

javascript - ref 在反应式数组对象中不再反应式

以下代码工作正常。当我们更改语言时,由于以下原因,文本会正确更新ref

但是我们真正想要的是将 .mainNavigationLinks作为一个reactive对象,这样我们就可以从数组中添加和删除项目,并让 Vueref使用array. 根据Vue 文档,这应该是可能的

然而,当我们尝试下面的代码时,我们看到标签不再是反应性的:

为了能够将项目添加到数组并仍然具有反应性,我们在这里缺少什么?感谢您的帮助。

0 投票
1 回答
1791 浏览

javascript - 如何在 VueJS 中从另一个组合调用组合函数

我一直在尝试使用 VueJS 中的新组合 API,但不确定如何解决问题。我正在寻找有关如何正确实施解决方案的一些建议。当一切都基于 vuex 时,这不是问题,因为您可以毫无问题地将操作分派到另一个模块。但是,我正在努力寻找组合实现的解决方案。

问题:

  1. 组件调用CompositionA的函数。
  2. CompositionA触发登录功能。
  3. CompositionA的登录成功/失败响应中,我想调用一个CompositionB函数。(CompositionB 包含用于显示在整个站点中使用的小吃店的数据和逻辑)

问题是有必要在每个组件中注入小吃栏依赖项,而不是从CompositionA实例化/安装它。目前的解决方案是达到这个效果:

如果存在类似下面的东西会很好,但我发现如果从CompositionA使用属性,则该属性在CompositionB中不是反应性的(方法被调用但小吃栏不显示)。我的理解是 Vue 没有将CompositionB注入到Component中,所以我只是在 CompositionA 中运行CompositionB另一个实例。我做错了什么?这里的正确解决方案是什么?

提前致谢,

0 投票
1 回答
1257 浏览

vue.js - 如何将 Vuex 命名空间的 getter 与 Composition API 一起使用

我目前正在尝试tags从 Vuex 检索 Searchbar 模块中的 。但是,它不是反应性的。

这是组件:

和 vuex 模块

我不明白为什么。我正在使用 Typescript,所以它不支持store.Searchbar.getters['all'])...有想法吗?

0 投票
2 回答
4222 浏览

vue.js - Vue组合api没有更新文本字段的绑定值

我在初始化后更新对象的属性。

我的简化组件如下所示:

在此示例中,getNextPort是一个返回数字的 API 调用。由于某种原因,v-text-field没有更新。我没有看到输入字段中的值。当我调用console.log后的对象时,getNextPort它显示:

这是预期的结果。我也试过:

  • $nextTick
  • onMounted
  • $forceUpdate

但是当我开始在名称字段中输入时,vpnPort 并没有得到更新!

有人知道为什么结果没有显示在 v-text-field 中吗?

0 投票
1 回答
1861 浏览

javascript - VueJs 3 / Composition API 和 Jest - 测试输入组件事件发射

我似乎在努力测试 VueJs 3 输入组件事件发射 - 这就是我所拥有的:

文本输入

文本输入.spec.js

运行测试我收到以下错误

当控制台记录emitted我得到一个空对象{}

0 投票
1 回答
1337 浏览

vuetify.js - 使用组合 api 和远程 api 进行 vuetify 自动完成?

问题如下:

您如何使用 Vuetify 自动完成和全新的组合 API 进行 API 调用?

0 投票
3 回答
874 浏览

typescript - 在使用 Vue Composition API 和 TypeScript 时,我应该在声明作为单个文件组件的模板 ref 时使用什么类型?

我有一个名为BusinessDetails. 我在另一个组件中使用这个组件,并且我已经将ref属性附加到它以访问它的属性和方法。如果我不给出refa 类型,则在访问它的方法时会出错"Object is possibly null"。我尝试将类型设置为BusinessComponenttypeof BusinessComponentVue.extend(BusinessComponent)等,但它们都会引发不同的错误。我最终决定将类型设置为any,并接受eslint警告。虽然这可以解决问题,但是否有合适的方法来做到这一点?

0 投票
0 回答
447 浏览

vue.js - 如何将 Vue 鼠标事件与组合 api 一起使用?

我只是想看看@mouseup、@mousedown、@mousemove 事件是如何工作的。我只有一个 div:

// html

// CSS

// Vue

现在每次单击时,我都可以看到所有 3 个事件都被调用一次,但是当我单击并拖动时没有任何反应,没有调用任何事件。

这是为什么 ?我似乎无法理解为什么。