Javascript 如何在vue js中重用es6类?

Javascript 如何在vue js中重用es6类?,javascript,vue.js,ecmascript-6,ecmascript-2017,Javascript,Vue.js,Ecmascript 6,Ecmascript 2017,如何在Vue Js中重用一些现有的ES6类 有一个类,它有一个变量被observable更新 class A { public a: string; someobservable.subscribe((a) =>{ this.a = a; }) } 在vue.JS中,已创建此类的对象 如何使用属性的示例: created: { objA = new A(); } methods: { getA() { if(th

如何在Vue Js中重用一些现有的ES6类

有一个类,它有一个变量被observable更新

class A { 
    public a: string;
    someobservable.subscribe((a) =>{
         this.a = a;
    })
}
在vue.JS中,已创建此类的对象

如何使用属性的示例:

created: {
    objA = new A();
}
methods: {
    getA() {
        if(this.objA !== undefined){
            return objA.a;
        }
    }
}
在vue模板中:

<div>{{getA()}}</div>
{{getA()}
模板中的值与类中变量的值不同步。


是否有其他方法可以使用Vue模板中不断实时更新的属性。

它应该将
getA()
作为计算属性而不是方法使用。此外,您还可以跳过if语句,因为没有返回语句将返回
未定义的

计算:{
格塔(){
返回objA.a;
}
}

您正在全局范围内创建实例。您需要在
数据
字段中实例化对象,以便vue能够跟踪任何更改

data: {
    objA: new A();
},
然后你可以像以前那样使用一种方法

methods: {
    getA() {
       return this.objA.a;
    }
},


{{getA}

两者的效果相同,但最好使用computed属性来利用缓存。

使用computed属性我在computed中使用它效果很好。谢谢实际上,我们在Vue.extend中使用了typescript,所以这个条件是必要的。干杯,很高兴这对您有用。我没有在Vue中使用Typescript,但在Angular(例如)中,通常可以键入
any
,以避开TS特定的错误消息。(因此可能
getA():任何{
都可以绕过它)。这两种解决方案都很好,而且都能正常工作。我无法在数据中创建它,因为对象创建依赖于其他内容。谢谢。
<div>{{getA()}}</div>
computed: {
    getA() {
       return this.objA.a;
    }
}
<div>{{getA}}</div>