Vue学习第一天,响应式

Vue是一个轻量级的脚本,中文文档十分完善,他关心的是视图层,同时他也是响应式的框架,数据发生变化,内容也会随之改变。

HTML:    
<div id="box"> <input type="text" v-model="text"> <p>{{text}}</p> </div>
JavaScript:
var
vm = new Vue({ el: '#box', data: { text: '', }, });

这里当输入框内容发生变化,vm.text也会随之改变,不过使用了V-model会导致不能设置默认值,而要在vue内部指定默认值。

HTML:
<
input type="text" id="input" v-model="text" value="teeeee">

上面定义了默认的value值,不过并不会生效,相当于Vue劫持了这个value。

 

Vue框架响应式的数据,必须放在data内部,如果定义在外部当数据发生改变,并不会影响。

JavaScript:
var a = {foo: 123}; var vm = new Vue({ el: '#box', data: a, }) a.oooo = 123; a.foo = vm.foo; //true

 

如果使用了Object.freeze(),(禁止删除,禁止扩展,禁止更改),实际上就是讲这个变量变成常亮,那么Vue的响应式也会失败。

JavaScript:
var
a = { foo: 123 }; var vm = new Vue({ el: '#box', data: a, }) Object.freeze(a);

 

对于引用类型,定义在data内部,直接修改并不会造成更新,比如内部如果是一个数组。

JavaScript:
var a = [123];
a[1] = 'name;'

这里可以使用Vue的自带的方法set来进行更新。

JavaScript:
var a = [123];
Vue.set(a, 1, 'name');

一些变异方法也可以让Vue响应式的更新,具体查看官方api列表渲染

 

转载于:https://www.cnblogs.com/boses/p/9619547.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值