笔记---vue

文章介绍了Vue.js中的v-model原理,它是数据双向绑定的实现方式,通过Object.defineProperty实现。data()用函数形式确保组件间数据隔离。v-if和v-show分别在条件渲染中起到不同作用,v-if不生成DOM,v-show只是隐藏。computed用于创建计算属性,而watch用于监听数据变化。
摘要由CSDN通过智能技术生成

一、v-model原理

  1. 数据双向绑定
<input type="text" id="username" />
<div>
  显示:
  <span class="uName"></span>
</div>
<script>
  let obj = {}
  Object.defineProperty(obj, 'username', {
    get: function () {
      console.log('取值')
    },
    set: function (val) {
      console.log('设置值')
      document.getElementById('uName').innerText = val
    },
  })
  document.getElementById('username').addEventListener('keyup', function () {
    obj.username = event.target.value
  })
</script>

二、data()为什么是函数

  • 是一个闭包函数,每一个组件都有自己的私有作用域,确保各组件数据不会相互干扰
  • 纯对象 => 干扰
data(){
    return {
        message:"vue",
        tel:""
    }
}

三、v-ifv-show

v-if
  • 不满足条件,不会渲染dom ———— 单次选择
<button v-if="val == '1'">btn1</button>
<button v-if="val == '2'">btn2</button>
<script>
    data(){
        return{
            val:'2'
        }
    }
</script>
v-show
  • 隐藏dom,多次切换
  • 不能用于权限操作
<button @click="changeShow">改变type</button>
<script>
    data(){
        return{
            type:false
        }
    },
    method:{
        changeShow(){
            this.type = !this.type
        }
    }
</script>

四、computerwatch区别

(一)、computer
  • 计算属性,计算出一个结果,函数值改变了就会重新计算
  • 初始化的时候会自动计算一次
  • 读取数据缓存
const num = ref(1)
const num2 = computed(()=>{
    return num.value + 10
})
(二)、watch
  • 监控某个数据,被监控的数据更改,则watch执行
  • 初始化的时候不会自动执行一次
const num3 = ref("未成年")
wacth(num3,(newVal, oldVal)=>{
    if(newVal >= 18){
        num3.value = "已成年"
    }
},{
    immediate:true  //初始化自动执行一次
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值