说一下v-model的理解双向绑定 vue响应式原理

1.vue响应式原理 和proxy的对比

参考: 1. vue2 里的响应式其实有点像是一个半完全体,对于对象上新增的属性无能为力,对于数组则需要拦截他的原型方法来实现响应式. 2. 这个时候Vue提供了一个api :this.$set来实现新增的属性也拥有响应式的效果.
问题:但是很多时候需要小心翼翼的去判断到底什么情况下需要用 $set,什么时候可以直接触发响应式。
在 Vue3 中,这些都将成为过去。proxy 到底会给 Vue3 带来怎么样的便利。
例子1.

let vm = new Vue({
   
 data() {
   
 return {
   
 a: 1
 }}})
// ❌ oops,没反应!
vm.b = 2 
let vm = new Vue({
   
 data() {
   
 return {
   
 a: 1
 }
 },
 watch: {
   
 b() {
   
 console.log('change !!')
 }}})
 
// ❌ oops,没反应!
vm.b = 2
1.3 vue2 响应式原理
例1.利用input实现数据双向绑定
 理解:
    发布者
    订阅者
    观察者
 <!-- 发布者 -->
  <input type="text">
  <!-- 订阅者 -->
  <div class="demo"></div>

  <!-- 观察者 Object.defineProperty(目标对象,目标对象中的属性,{
   6个属性:set,get,value,枚举,可选值,是否可写}) -->
  <script>
    /* 观察者 */
    // let target = {} //目标对象
    // Object.defineProperty(target, 'msg', {
   
    //   get () { },
    //   set (value) {
   
    //     console.log(value, 5);
    //     demo.innerHTML = value
    //     ipt.value = value
    //   }
    // })

    // let ipt = document.querySelector('input')
    // let demo = document.querySelector('.demo')
    
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All rivers run in to the sea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值