问题标签 [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 回答
4050 浏览

typescript - 如何在 vue-class 中为 v-model 使用计算属性?

我想将 v-model 用于带有 vuex 的 vuedraggable 插件,但我不知道如何在@Component装饰器中设置计算属性,如下所示。对此有其他解决方案吗?

0 投票
1 回答
460 浏览

typescript - 使用打字稿时在Vue项目中注册第三方包

我在我使用 vue-cli 创建的 vue.js 项目中安装了一个包,并且我正在使用 typescript。该软件包用于 google 的社交身份验证。https://www.npmjs.com/package/vue-google-oauth2

现在,当我在 main.ts 文件中导入包时,它会给出如下错误:

找不到模块“vue-google-oauth2”的声明文件。隐含地具有“任何”类型。

尝试npm install @types/vue-google-oauth2它是否存在或添加一个新的声明 (.d.ts) 文件,其中包含declare module 'vue-google-oauth2';

我只需declare module 'vue-google-oauth2';在我的 shims.d.ts 文件中添加该行即可消除该错误。但是,既然这个问题已经解决,即使应用程序运行良好,我的终端仍然会出现另一个错误。新的错误如下:

“AuthMixin”类型上不存在属性“$gAuth”

基本上我正在使用 this.$gAuth ,即使它正在工作,终端仍然说它在我的 vue 实例中不存在。我怎样才能让这个错误消失?

0 投票
2 回答
7327 浏览

typescript - vue-class-component:如何创建和初始化反射数据

我正在使用带有 typescript 和 vue-class-component 的 vuejs。我正在尝试使用反应数据创建自定义组件。

这是我的代码:

在第一个版本中,我遇到了这个错误:

属性或方法“数据”未在实例上定义,但在渲染期间被引用

这很正常,正如 vue-class-component 页面中所说,未定义的数据不会反射。我需要将数据初始化为空。此外,我得到这个打字稿错误:

属性“数据”没有初始值设定项,也没有在构造函数中明确分配

所以我想这样做:

但我得到这个打字稿错误:

“null”类型不能分配给“Model”类型。

我不想将数据类型更改为,Model | null因为我必须检查数据是否在任何我将使用它的地方都为空,而且我知道数据永远不会为空。

也不起作用,因为数据将是未定义的,因此不会是反应性的。

我不想关闭打字稿检查,因为它们对代码的其他部分很有用。

这里有初始化数据的正确方法吗?

0 投票
4 回答
119 浏览

typescript - 反应性:更改数组中的属性,应用于窗口事件

简单用例:特定元素应通过将属性“active”设置为 true (v-bind:class) 来获得活动类。在检查一些条件后,在方法“handleScroll”中,在 foreach 循环中设置属性“active”。

如果我在创建的生命周期中直接调用“handleScroll”,这将有效。


如果我在窗口事件中调用“handleScroll”,反应性就会丢失。

改变

不起作用。该方法已执行,但模板中的反应性丢失。

问题:如何在全局窗口事件中设置这些属性并将它们分配回视图?

0 投票
1 回答
361 浏览

vue.js - babel-standalone 不转译 esm 模块

我想写 vue demo 用于教育教学目的,为了只关注 vue 部分,我不想介绍 npm、webpack 或 browserify 之类的 bundler 等。

所以我使用babel-standalone. 我也想用vue-class-component。但是现在我无法使用 and 的构建esm,总之我想支持在我的 main.js 中编写这样的代码vuevue-class-component

如果我像上面那样编写代码,我会Uncaught ReferenceError: require is not defined出错。

现在我可以使用以下样式使其工作,但使用Componentofvue-class-component很难看。

更多细节可以在https://github.com/liudonghua123/todos/tree/master/todos-vue-class-component

0 投票
1 回答
770 浏览

typescript - 如何简化和重置从父组件到子组件的道具?

我正在尝试重置作为道具传递给子组件的数据。我该怎么写这个?

上下文:我正在将 ThreeJS 实现转换为 Vue/Typescript。它包括一个控制面板,由滑块输入控制三个画布的参数组成。我将这个庞大的单体原始代码分成 3 个组件: - child1:controlsPanel,包含滑块和重置按钮 - child2:Vue-GL 画布,发出鼠标事件 - parent:托管初始数据和重置的组件。

家长:

子代码:

属性 prop1 和 prop2 由 Child1 组件控制并由 Child2 使用。Child2 也可以更新这些道具(通过鼠标事件),这应该适当地更新 Child1 中的滑块。

我设法让 Typescript 开心,但代价是到处打字……

问题1:有没有办法在保持孩子和父母 App 之间的 2way-bindings 的同时简化?(2way-bindings 不适用于上述代码)

问题2:如何重置所有道具?我的 child1.resetCamera 似乎调用了父 reset() 但道具没有重置......

0 投票
1 回答
602 浏览

typescript - 销毁事件挂钩中的 Vue 错误处理不起作用

似乎 Vue 中的错误处理有时对我不起作用。如果我写:

我在浏览器控制台中正确地看到了错误。但如果我写:

没有错误。如果我将destroyed钩子更改为:

我可以看到错误 - 因此代码被执行,错误被忽略。我不确定这是一个错误,一个功能 - 或者我只是在做一些愚蠢的事情。

我想我见过其他带有其他钩子的案例——但我不记得是哪个。

我正在使用Vue:2.6.6 和Vue-Class-Component:6.3.2

0 投票
3 回答
2459 浏览

typescript - vue-class-component : 调用类方法时 TS2339

我正在使用 vue-cli-service 来构建我的 vuejs 应用程序。

构建成功,但在 webstorm IDE 中,我收到一些 TS2339 错误:

测试.vue:

测试规范:

在 Test.spec.ts 中,我在编辑器和打字稿窗口中都收到此错误:

错误:(14, 21) TS2339:“Vue”类型上不存在属性“方法”。

但是测试没问题,所以test.method()在运行时就成功解决了。

0 投票
1 回答
593 浏览

typescript - 使用带有 Vue 和 TypeScript 类装饰器语法的外部定义组件

我正在尝试使用vue-form-wizardVue 组件,使用由vue-class-component.

这是我的.vue文件:

这是 TypeScript 生成的错误:

我很确定这是因为FormWizard没有扩展或以其他方式实现 Vue。但我不知道如何强制转换组件或以其他方式强制 TypeScript 相信这FormWizard是一个 Vue 组件。

是否有可能FormWizard只是错误的类型?

如果是这样,我该怎么做才能解决它?

0 投票
0 回答
418 浏览

vue.js - 启用自动注入模式时,对子组件的 vee-validate 父 $validator 注入不起作用

我正在使用vue-class-component, vue-property-decorator,我想像这样将父 $validator 传递给子组件。

但是,它不起作用。

但是,当我像这样禁用自动注入Vue.use(VeeValidate, {inject: false});$validator在父组件中新建时。

我只是在子组件中添加注入代码,所以一切正常!

我想使用自动注入。(我不想对每个组件都明确表示新)在我的情况下,为什么不使用启用自动注入的组件注入?

先感谢您。