вы можете создать массив и вернуть из него список функций примерно так:
data(){ return {
watcherArray: [];
}
}
methods: {
pushToWatchersArray() {
this.watcherArray.push(someValue);
}
returnNewWatchers(){
return { this.watchersArray.map(watcher => return `${watcher}(){
this.updatewatcher()}
}
watch: {
[...this.returnNewWatchers()]
}
Возможно, вам также понадобится переопределить компонент при смене наблюдателей, я не уверен в этом, вКроме того, вам может понадобиться отдельный наблюдатель, чтобы следить за изменениями в массиве, чтобы выполнить это повторное рендеринг.