问题标签 [vue-class-components]

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 回答
276 浏览

typescript - Vue 类组件:如何自定义选项

目前我将 Vue 2 与 Typescript 一起使用,但我无法向组件添加选项

我没有定义!

我发现了 1 个类似的问题,我尝试了但仍然没有结果

扩展组件选项

我的 src\shims-vue.d.ts

0 投票
1 回答
308 浏览

javascript - 如何使用 Vue.js 类组件设置 PayPal 智能按钮

我正在尝试将 PayPal 按钮添加到现有的结帐页面。但是,我遇到了很多麻烦,因为我们的项目使用了 Vue.js 类组件,而我遇到的示例却没有(官方 PayPal 文档不使用类组件:https://developer.paypal .com/docs/business/checkout/configure-payments/single-page-app/)。

我遇到了使用mounted()钩子将 PayPal SDK 脚本注入 DOM 的解决方法,并且在使按钮出现方面取得了成功,但存在无法使付款详细信息动态化的问题(订单信息如总金额、项目描述等都存储在 Vue 组件的状态中,我还没有找到一种方法将该状态传递给 DOM 中的静态 JS 脚本)。

我目前正在尝试调整官方 PayPal 文档以使用类组件,我的代码如下(去掉了与 PayPal 无关的部分):

索引.html:

商店.vue:

shop.component.ts:

此代码将成功构建,但由于出现错误,我无法实际打开页面。在浏览器控制台中,我看到以下错误:

TypeError:无法读取未定义的属性“组件”

经过进一步调试,我发现该行paypal.Buttons.driver("vue", window.Vue);导致错误,这是因为paypal未定义。我相当肯定 index.html 中的 PayPal 脚本已正确加载,而且我也不认为这是由于缺少 npm 包或导入。我在网上找到的少数资源之一是:Vue PayPal implementation with vue-head, paypal not defined

不幸的是,这个链接的解决方案使用了mounted()钩子,这是我之前尝试过的,它不能解决提供我想要的动态总数的问题。

有人有使用 PayPal SDK 和 Vue.js 类组件的经验吗?任何帮助将不胜感激!

0 投票
0 回答
59 浏览

vue.js - 如何使用 vue-class-component

vue 类组件

const { toPromise } = useScript({ src: BAI_DU_MAP_URL });-->private toPromise = useScript({ src: BAI_DU_MAP_URL })

err: Uncaught (in promise) TypeError: this.toPromise is not a function

如何编写 use vue-class-component?help me
如何编写 use vue-class-component?help me
如何编写 use vue-class-component?help me
如何编写 use vue-class-component

0 投票
4 回答
736 浏览

typescript - (如何)我应该在 Vue.js 组件(TypeScript)中使用访问修饰符(公共、私有等)吗?

我有一个带有 TypeScript v.4.3 的 Vue.js v2.6 项目“幕后”。我的问题:如果在Vue 组件中使用以及如何正确使用它们
有意义,我找不到任何可以清除的文档。 我搜索了文章、Vue.js 文档和 StackOverflow,没有任何发现。(Vue.js 文档完全忽略了它们的存在!)access modifiers

这就是我目前在 Vue 组件中使用访问修饰符的方式:

myComponent.vue 的模板部分:

myComponent.vue 的脚本部分:

我希望,这不是一个基于意见的问题。我假设有一个事实可以证实 Vue 组件中访问修饰符的意义。我有一种强烈的、可能是非理性的抵抗力来忽略它们。

顺便说一句:我在 Rider 中编码,访问修饰符可能对 IDE 代码分析有用。

0 投票
1 回答
213 浏览

typescript - 使用 vue typescript 铸造组件 - 访问子方法

我正在尝试访问子组件方法。通常这很好

为了让打字稿满意,这是必需的。

我对语法并不太热衷。有没有办法在组件选项中进行转换

我应该为此使用类/装饰器语法来实现这一点吗?

0 投票
0 回答
32 浏览

javascript - Vue 在每次小的更改时都会不必要地重新渲染整个所有子组件

我在一个复杂的项目中遇到了一个问题:不知何故,Vue 在每次更改时都会重新渲染所有子
项我们使用带有打字稿、类组件和装饰器的 vue 2.5.17。
我创建了一个新的、干净的组件,它与我们项目中的其他逻辑完全不相关:

通常,当我单击“增加计数器”时,InnerElement不应重新渲染任何子级。当我在list数组中添加一个新项目时,应该只渲染新添加的元素。
我已经在一个新的、干净的项目中对此进行了测试,它按预期工作。在我们遇到问题的项目中,这就是行为:我添加了一个新元素,所有现有元素都被重新渲染。我增加计数器,所有元素都重新渲染:

如果我执行以下流程,这就是它的样子:添加 4 个元素,最后增加计数器: 这是正常行为,在新创建的项目中,对于完全相同的流程: 在此处输入图像描述

在此处输入图像描述

虚拟项目使用 vue 2.6.11,我没有费心添加 webpack-dev-server、vuex 和其他一些库,因为我认为这些不会影响事物的呈现方式。
我完全没有想法,我没有最小的线索去哪里看,到目前为止在互联网上找不到任何东西。
谢谢!

0 投票
2 回答
42 浏览

javascript - 如何在 vue-class-component 中使用动态组件

我使用 vue vue-class-component 并且它工作正常:

但是当我尝试为生产添加新组件时:

我有错误:

'{ components: { vue2Dropzone: any }; 类型的参数 Vuetify:Vuetify;storeTmp: 存储<...> | 无效的; }' 不可分配给“VueClass”类型的参数。对象字面量只能指定已知属性,但“VueClass”类型中不存在“组件”。您的意思是写“组件”吗?

我该如何解决?

0 投票
0 回答
14 浏览

vue.js - 如何使 li 项目在 Vue 的侧边栏中处于活动状态

我是 Vue 的新手,我想制作一个侧边栏:

所以我想要实现的目标是,作为默认值,我想将#tickets 的类设置为活动状态,并且正如您可以想象的那样,每当它被点击到另一个 a href 时,我希望它在前一个是活动的和非活动的。所以我试图做一些合乎逻辑的事情。如果你能给我任何想法,我会很高兴的。

0 投票
1 回答
29 浏览

typescript - TypeScript:将普通对象混入类中

基本上我正在尝试创建一个动态定义类的函数,该类从传递的对象扩展另一个类。像这样的东西:

这样做的目标是能够编写混入映射状态的 Vue 类组件。像这样:

我几乎让它与黑客一起工作

但我不能让它扩展 Vue 加上它显然是一个可怕的解决方案。

0 投票
1 回答
335 浏览

typescript - Webpack 安装后无法解析“vue-property-decorator”(v10.X)库

Module not found: Error: Can't resolve './decorators/Emit'尝试从库vue-property-decorator导入某些功能时出现错误...好吧,如果原因很简单,例如忘记安装此软件包,我没有问这个问题。该软件包已安装并呈现:

在此处输入图像描述

IntelliJ IDEA 不会以某种方式在文件三视图上显示它,但我仍然可以通过go to source功能查看它,当然,我通过本机文件系统检查这些文件。

在此处输入图像描述

错误如下:

通常,当忘记 TypeScript 编译器的某些设置(如allowSyntheticDefaultImportsesModuleInterop. 然而,这些错误是 Webpack 错误,而不是 TypeScript 错误。但以防万一,我将附加我的 TypeScript 配置:

Webpack 配置是:

A 没有任何问题vue-property-decoratorVue 2.x但这是我第一次10.x使用Vue 3.x.

请不要向我推荐通过 Vue-cli 或 Vite 创建的样板——这里我们讨论的是使用 Webpack 手动设置。