当前位置: 网站首页>小程序开发>400电话办理

高端!网站定制/设计/优化/二次开发/制作/搭建-阜阳高端网站建设

发表日期: 2022-07-02 10:15:33 浏览次数:30

高端!网站定制/设计/优化/二次开发/制作/搭建-阜阳高端网站建设

网站建设.png

Vue.js 响应接口

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


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


实例中通过点击按钮计数器会加 1。setTimeout 设置 10 秒后计算器的值加上 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;

    },10000

);

</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">

var myproduct = {"id":1, name:"book", "price":"20.00"};

var vm = new Vue({

   el: '#app',

   data: {

      products: myproduct

   }

});

vm.products.qty = "1";

console.log(vm);

vm.$watch('products.id', function(nval, oval) {

   alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!');

});

</script>


尝试一下 »

在以上实例中,使用以下代码在开始时创建了一个变量 myproduct:


var myproduct = {"id":1, name:"book", "price":"20.00"};

该变量在赋值给了 Vue 实例的 data 对象:


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 来实现:


实例

<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">

var myproduct = {"id":1, name:"book", "price":"20.00"};

var vm = new Vue({

   el: '#app',

   data: {

      products: myproduct

   }

});

Vue.set(myproduct, 'qty', 1);

console.log(vm);

vm.$watch('products.id', function(nval, oval) {

   alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!');

});

</script>


尝试一下 »



从控制台输出的结果可以看出 get/set 方法可用于qty 属性。


Vue.delete

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


Vue.delete( target, key )




高端!网站定制/设计/优化/二次开发/制作/搭建-阜阳高端网站建设

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878