该函数用于基于传入的对象,创建一个用于双向绑定的对象。它的传入参数是任意的,但是我推荐使用 store 或 model 的 state,这样就不用自己构造第二个参数。
但是,如果你想让一个普通对象也可以实现响应式,你可以利用第二个参数:
const { state } = this // react 的 state 本质上是一个普通对象 const $state = createTwoWayBinding(state, ([state, keyPath, value], [target, key]) => { this.setState({ [key]: value }) }) <Input $value={$state.name} />
目的上,createTwoWayBinding 最终是为双向绑定服务的,所以不应该用它所创建的对象去读取值。
小结
本文主要介绍了为什么要在 Nautil 中实现双向绑定,怎么实现,以及如何使用的问题。虽然本文主要是介绍 Nautil 中的双向数据绑定,但是也讨论了 react, vue, angular 的一些数据状态管理的东西,如果你对这些问题也有自己的想法,不妨在下方给我留言一起讨论。