解密 Vue.observable

简介: Vue.observable 是 Vue 2.6 引入的一个新功能,用于创建可观察的对象。它的 **`主要作用是将一个普通的 JavaScript 对象转换为一个可观察的对象,使得当对象的属性发生变化时,可以自动触发相应的响应式更新。

一,什么是Vue.observable

Vue.observable 是 Vue 2.6 引入的一个新功能,用于创建可观察的对象。它的 主要作用是将一个普通的 JavaScript 对象转换为一个可观察的对象,使得当对象的属性发生变化时,可以自动触发相应的响应式更新。 这对于在 Vue 组件之外处理数据非常有用,例如在 Vuex store、事件总线或者与第三方库集成时。

二,使用场景

  • 在 Vue 组件之外处理数据,例如在 Vuex store 中。
  • 与第三方库集成,例如与 Socket.io 实时通信。
  • 在组件之间共享数据,但不使用 Vuex。
  • 创建一个可观察的对象,用于跟踪表单输入的变化。

    三,主要作用

  • 将普通对象转换为可观察对象,使其具有响应式更新的能力。

  • 当可观察对象的属性发生变化时,自动触发相应的响应式更新。
  • 可以在 Vue 组件之外处理数据,方便与第三方库集成。

四,代码示例

// 引入 Vue
import Vue from 'vue';

// 创建一个普通对象
const data = {
   
  message: '您好, Vue.observable!'
};

// 使用 Vue.observable 将普通对象转换为可观察对象
const observableData = Vue.observable(data);

// 监听可观察对象的属性变化
observableData.$watch('message', function (newVal, oldVal) {
   
  console.log('信息的变化 from', oldVal, 'to', newVal);
});

// 修改可观察对象的属性
observableData.message = '您好, 还是大剑师兰特';

在这个示例中, 我们首先创建了一个普通的对象 data,然后使用 Vue.observable 将其转换为可观察对象 observableData。接着,我们使用 $watch 方法监听 message 属性的变化。最后,我们修改 message 属性的值,控制台会输出属性变化的信息。

// 输出:信息的变化from Hello,您好, Vue.observable! to 您好, 还是大剑师兰特

五,注意事项

Vue.observable 仅适用于 Vue 2.6 及以上版本在 Vue 3 中,这个功能已经被移除,取而代之的是使用 reactive 和 ref 创建响应式对象。

相关文章
|
4月前
|
JavaScript 前端开发
深入了解 Vue中$nextTick
$nextTick`是 Vue 框架中的一个函数,用于在 DOM 更新完成后执行回调函数。它的主要作用是`解决在 Vue 中修改数据后,DOM 不会立即更新的问题
|
JavaScript 前端开发
vue中nextTick()的理解及使用
vue中nextTick()的理解及使用
|
4月前
|
JavaScript 前端开发 API
vue中nextTick函数和react类似实现
vue中nextTick函数和react类似实现
174 0
|
4月前
|
JavaScript 前端开发
「Vue3系列」Vue3 事件处理
在 Vue 3 中,事件处理与 Vue 2 非常相似,但有一些细微的改进和新的语法。Vue 3 仍然使用 `v-on` 指令来处理 DOM 事件,或者更常见的是使用其简写形式 `@`。
135 0
|
4月前
|
JavaScript
Vue.observable的理解
Vue.observable的理解
48 1
|
4月前
|
JavaScript 前端开发
Vue当中的observable是什么?怎么用
Vue当中的observable是什么?怎么用
32 0
|
11月前
【Vue3】vue3 中 watch 和 watchEffect 的区别
【Vue3】vue3 中 watch 和 watchEffect 的区别
86 0
|
JavaScript 前端开发
vue中的$nextTick?
vue中的$nextTick?
52 0
|
JavaScript 前端开发
vue3 nextTick()应用
在Vue3中,可以使用nextTick函数来延迟执行某些操作,这些操作会在下一次DOM更新周期之后执行。这个函数通常用于在数据更新后,等待DOM更新之后执行一些操作,比如获取DOM元素的尺寸、位置等。