Javascript 如何在vue js中重用es6类?
如何在Vue Js中重用一些现有的ES6类 有一个类,它有一个变量被observable更新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
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>