首页 - 通讯 - Vue.js响应接口详解

Vue.js响应接口详解

2023-09-30 03:28

Vue可以添加数据动态响应接口。

例如,在下面的示例中,我们使用$watch属性来监控数据。 $watch 必须添加到 Vue 实例之外才能获得正确的响应。

在示例中,单击按钮将使计数器增加 1。setTimeout 将计算器的值设置为 10 秒后加 20。


  

计数器:{{计数器}}

效果如下:

Vue 不允许在已创建的实例上动态添加新的根级响应式属性。

Vue 无法检测对象属性的添加或删除。最好的方法是在初始化实例之前声明根级响应式属性,即使它只是一个空值。

如果我们需要在运行时添加或删除属性,我们可以使用全局 Vue、Vue.set 和 Vue.dete 方法。

Vue.set

Vue.set 方法用于设置对象的属性。可以解决Vue无法检测到添加的属性的限制。语法格式如下:

Vue.set(目标,键,值)

参数说明:

  • 目标:可以是对象或数组
  • 键:可以是字符串或数字
  • 值:可以是任何类型

  

计数器:{{ www.gsm-guard.net }}

在上面的示例中,使用以下代码在开始时创建了变量 myproduct:

var myproduct = {"id":1, 名称:"书", "价格":"20.00"};

这个变量被赋值给Vue实例的数据对象:

var vm = new Vue({ el: '#app', data: { products: myproduct } });

如果我们想向 myproduct 数组添加一个或多个属性,我们可以在创建 Vue 实例后使用以下代码:

vm.products.qty = "1";

查看控制台输出:

如上图所示,商品中添加了数量属性qty,但是get/set方法只能用于id、name和price属性,而不能用于qty属性。

我们无法通过添加 Vue 对象来实现响应性。 Vue一开始主要创建所有属性。如果我们想实现这个功能,可以通过Vue.set来实现:

计数器:{{ www.gsm-guard.net }}

从控制台输出中,我们可以看到get/set方法可以用于qty属性。

Vue.d elete

Vue.d elete 用于删除动态添加的属性。语法格式:

Vue.dputete(目标, 键)

参数说明:

  • 目标:可以是对象或数组
  • 键:可以是字符串或数字

  

计数器:{{ www.gsm-guard.net }}

在上面的例子中,我们使用Vue.dputete删除了price属性。以下是控制台输出:

从上图的输出结果中,我们可以看到price属性被删除了,只剩下id和name属性,并且price属性的get/set方法也被删除了。