gpt4 book ai didi

vue.js - 在vue.js中是否可以通知 "observers"从观察数据中重新取值,而不改变观察数据的值

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:14 24 4
gpt4 key购买 nike

假设我有一个像这样绑定(bind)的输入元素:

<input :value="somedata">

用户在输入中输入了一些东西,因为我没有使用 v-model 或通过处理程序改变 somedata,元素的值现在不同于一些数据。这就是我想要的,但我还想拥有以下能力:

在不更改 somedata 的值的情况下,我希望能够通知元素,以便它再次将其值设置为等于 somedata。类似于 knockout 的 notifySubscribers()valueHasMutated()

这在 vue.js 中可能吗?

更新:此处问题的清晰说明: https://jsfiddle.net/gtezer5c/3/

最佳答案

要解释满足您需求的要求和验收标准究竟是什么有点困难,我认为 Bill 的解决方案正是您所追求的,但在所有更新和澄清之后,我想我对您的理解多了一点正在尝试完成:简而言之,我认为您需要一种通用的方法来获得可以保存值但可以独立恢复为其他值的输入。

请看this CodePen .我相信它提供了你想要做的事情。它允许您创建一个 input 元素作为一个 revertable 组件,它可以选择传递一个默认值。对该输入的任何更改都由组件及其 value 数据属性维护。它不会观察/拉入任何 lastKnownGood 类型的值,因为任何还原都将从外部插入组件。

revertable 组件的外部,您可以 $emit 一个具有新值的 revert 事件,这将导致所有 revertable 组件或要还原的单个 可还原 组件(具有匹配的 ID)。

我觉得这主要是一个干净的解决方案(假设我正确理解了要求),除了在 VueJS 2 中我们必须使用独立的共享 Vue 对象来传递没有父子关系的事件。所以你会看到:

const revertBus = new Vue()

在演示中定义在全局范围内。 revertable 组件将使用它来接收传入的消息,如下所示:

revertBus.$on('revert', (value, id) => { ... }

触发消息的控制 Vue 对象将像这样使用它:

revertBus.$emit('revert', this.reversionValue, targetId)

您还可以发出带有 null 值的事件,使 revertable 组件将其值重置为其初始默认值:

revertBus.$emit('revert', null, targetId)

同样,这是一个大部分干净的解决方案,虽然它可能不完全符合您要完成的目标,但我希望它至少可以帮助您更接近。 p>

关于vue.js - 在vue.js中是否可以通知 "observers"从观察数据中重新取值,而不改变观察数据的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com