vue的响应接口

摘要:
Vue可以添加数据动态响应接口。例如,在下面的示例中,我们使用$watch属性来监视数据$watch必须添加到Vue实例之外才能获得正确的响应计数器:{{Counter}}</p><button@click=“counter++”style=“font-size:25px;”˃单击Ivarvm=newVue;虚拟机$Watch('counter',function(nval,oval){alert('计数器值更改:'+oval+'变为'+nval+'!');});setTimeout;Vue不允许您向已创建的实例动态添加新的根级响应属性。Vue无法检测对象属性的添加或删除。最好的方法是在初始化实例之前声明根级响应属性,即使它只是一个空值。

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

例如以下实例,我们通过使用 $watch 属性来实现数据的监听,$watch 必须添加在 Vue 实例之外才能实现正确的响应。

实例中通过点击按钮自动加 1。setTimeout 设置两秒后计算器的值加上 20 。

<div id = "app"> <p style = "font-size:25px;">计数器: {{ counter }}</p> <button @click = "counter++" style = "font-size:25px;">点我</button> </div> <script type = "text/javascript"> var vm = new Vue({ el: '#app', data: { counter: 1 } }); vm.$watch('counter', function(nval, oval) { alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!'); }); setTimeout( function(){ vm.counter = 20; },2000 ); </script>

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

Vue 不能检测到对象属性的添加或删除,最好的方式就是在初始化实例前声明根级响应式属性,哪怕只是一个空值。

如果我们需要在运行过程中实现属性的添加或删除,则可以使用全局 Vue,Vue.set 和 Vue.delete 方法

Vue.set

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

Vue.set(target,key,value )

参数说明:

  • target: 可以是对象或数组
  • key : 可以是字符串或数字
  • value: 可以是任何类型
<div id = "app">
<p style = "font-size:25px;">计数器: {{ products.id }}</p>
<button @click = "products.id++"style = "font-size:25px;">点我</button>
</div>
<script type = "text/javascript">
varmyproduct ={"id":1, name:"book", "price":"20.00"};
varvm = newVue({
   el: '#app',
   data: {
      counter: 1,
      products: myproduct
   }
});
Vue.set(myproduct, 'qty', 1);
console.log(vm);
vm.$watch('counter', function(nval, oval) {
   alert('计数器值的变化 :' +oval + '变为 ' +nval + '!');
});
</script>

Vue.delete

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

Vue.delete(target,key )

参数说明:

  • target: 可以是对象或数组
  • key : 可以是字符串或数字
    <div id = "app">
       <p style = "font-size:25px;">计数器: {{ products.id }}</p>
       <button @click = "products.id++"style = "font-size:25px;">点我</button>
    </div>
    <script type = "text/javascript">
    varmyproduct ={"id":1, name:"book", "price":"20.00"};
    varvm = newVue({
       el: '#app',
       data: {
          counter: 1,
          products: myproduct
       }
    });
    Vue.delete(myproduct, 'price');
    console.log(vm);
    vm.$watch('counter', function(nval, oval) {
       alert('计数器值的变化 :' +oval + '变为 ' +nval + '!');
    });
    </script>

免责声明:文章转载自《vue的响应接口》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Map、List、Set在Java中的各种遍历方法CentOS 5下freeswitch中集成使用ekho实现TTS功能二下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue中使用ueditor富文本编辑框

1.把下载的Ueditor资源,放入静态资源static中。 修改ueditor.config.js中的window.UEDITOR_HOME_URL配置,如下图: 2.在main.js中引入以下文件: import '../static/UE/ueditor.config.js'import '../static/UE/ueditor.all.min...

三: vue组件开发及自动化工具vue-cli

一: 组件化开发 1 组件 1: 组件(Component)是自定义封装的功能。在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能。 2: 什么是组件 而在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js来定义功能的特效,因此就产生了把一个功能相关的[HTML、cs...

vue 插件tab选项卡(转载)

<template> <tab :options="tabOpt" :state.sync="stateIndex"></tab> </template> <script type="text/babel"> import tab from 'components/tab_touc...

(四)Vue指令

常用内置指令   v:text : 更新元素的 textContent   v-html : 更新元素的 innerHTML   v-if : 如果为true, 当前标签才会输出到页面   v-else: 如果为false, 当前标签才会输出到页面   v-show : 通过控制display样式来控制显示/隐藏   v-for : 遍历数组/对象   v...

vue项目准备工作(一)

1.写文档: 产品说明、工作日志、接口说明文档、数据库说明文档、项目架构说明文档等···· 例如:后台管理系统:商品的管理、店铺的管理、店铺类别管理、管理员的管理、用户管理等·····     前端渲染。前端站点、首页,用户界面。搜索。类别。详情。api:接口。 2.vue脚手架 1. 全局安装vue的脚手架 cnpm install @vu...

Vue的编译过程

碰到是否有template选项时,会询问是否要对template进行编译: 在template编译(渲染成UI)有一个过程。模板通过编译生成AST,再由AST生成Vue的渲染函数,渲染函数结合数据生成Virtual DOM树,对Virtual DOM进行diff和patch后生成新的UI。将上图细化一下,也就是template编译的过程如下图所示:...