【发布时间】:2020-09-11 04:25:37
【问题描述】:
我知道反应性在 VueJs 中很重要。但是,我倾向于使用 OOP 进行前端开发,因此数据通常由函数提供。这自然是非反应性的,可以通过使用 this.$forceUpdate 来克服。
问题是 - 这是一个根本上糟糕的概念吗?还是刚刚好?有没有更好的办法?可能可以使用观察者,但我觉得这会使代码更复杂。
例子:
<template>
<multiselect
:value="myclass.getValue('param1)" />
@input="val => valueUpdated(val)"
</template>
然后在方法中:
valueUpdated(newVal)
{
this.myClass.setValue(newVal);
this.$forceUpdate();
}
注意,myClass 有异步数据,所以到第一次渲染时,它还没有被数据填充。 MyClass 作为 props 进入组件,它是一个 TypeScript 类。 这个解决方案很好用,但是有更好(正确)的方法吗?
【问题讨论】:
-
示例vue文件的数据对象中是
myclass,还是属于另一个vue文件 -
@JakeLam myClass 来自 props,但它是一个 TypeScript 类。
标签: vue.js vue-reactivity