vue 中使用freeze出现的问题

19 篇文章 0 订阅
3 篇文章 0 订阅
< template >
<!-- import { Vue } from 'vue/types/vue'; -->
< div >
  < div class = "one" >
    < h1 >
      {{ number }}
    </ h1 >
  </ div >
  < span >
    {{ obj1 . foo }}
    (被freeze)
  </ span >
  < p >
    {{ obj2 . boo }}
    (正常)
  </ p >
  < p >
    {{ obj3 }}
    (正常)
  </ p >
  <!-- 两个都不能修改??为什么?第二个理论上应该是可以修改的-->
  < button @click = " obj1 . foo = 'yyy' ; obj2 . boo = 'bbb' " > 点我修改12 </ button >
  <!-- bbb可修改,yyy不可改 -->
  < button @click = " obj2 . boo = 'bbb' ; obj1 . foo = 'yyy' " > 点我修改21 </ button >
  <!-- 两个都可以修改 -->
  < button @click = " obj2 . boo = 'ccc' ; obj3 = '444' " > 点我修改23 </ button >
</ div >
</ template >

< script >
var obj1 = {
  foo: 'xxx'
}
// 使用 Object.freeze() 来防止已有属性被修改,这也意味着响应式系统无法追踪变化。
Object . freeze ( obj1 )

var obj2 = {
  boo: 'aaa'
}
export default {
  name: 'lianxi' ,
  data () {
    return {
      number: '123' ,
      obj1: obj1 ,
      obj2: obj2 ,
      obj3: 333
    }
  }
}

</ script >

< style scoped >
h1 {
  font-weight : normal ;
  color : #42b983 ;
}

</ style >

看vue的手册里面讲,使用 Object.freeze() 来防止已有属性被修改,这也意味着响应式系统无法 追踪变化。
然后使用的时候,出现了如上情况。不知道什么原因,如有知悉,请告知。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值