Vue3-知识结构-MVVM

本文详细介绍了Vue3中MVVM模型的工作原理,包括数据驱动视图的nextTick()函数,用于监控数据变化的Watch以及如何使用Computed创建计算属性。通过实例展示了nextTick()与onUpdated()的区别,以及如何设置Watch监听数据变化,同时阐述了Computed在优化性能方面的作用。
摘要由CSDN通过智能技术生成

Vue3知识结构之MVVM



一、mvvm模型

mvvm模型是vue实现数据驱动视图和数据双向绑定的核心原理
mvvm模型:model (data数据) + view-moudle (vue实例) + view (dom)

二、nextTick()

响应式变量异步驱动视图,通过nextTick()函数来解决这类异步情况

nextTick() 与 OnUpdated()生命周期函数

nextTick() 功能和OnUpdated()生命周期函数相同都是与视图相关,可以监控视图(view)发生变化,并在视图(view)变化后执行编写的逻辑。
区别:nextTick() 依附逻辑使用。若和onUpdated处于同一级时,只执行打印一次;若放入其它函数逻辑内,会跟随视图变化而被触发。

例子 点击按钮值发生变化

<span class='test'>{{ jsonStrtest }}</span>
<button @click="changeNextTick">点击显示下一个值</button>
------------------------------------------------------------------------------------
import {nextTick, onUpdated, ref} from 'vue'
let jsonStrtest=ref('8 9 10');
function changeNextTick(){
    jsonStrtest.value='J Q K';
    console.log('@nextTick-nextTick',document.querySelector('span.test').innerHTML);
    //由于响应式变量异步的原因 打印初始赋值
    nextTick(()=>{
    console.log('@nextTick-nextTick',document.querySelector('span.test').innerHTML); 
    //打印的和onUpdated()一样是已更新后的值
    })
})
nextTick(()=>{
    console.log(document.querySelector('span.test').innerHTML); 
    //页面打开立即打印并只打印一次,因为初始赋值改变了视图,触发函数
})
onUpdated(()=>{
    console.log('@onUpdated',document.querySelector('span.test').innerHTML); 
})

三、Watch 监控数据变化

可以监控数据(model)发生变化,并在数据(model)变化后执行

watch(
    ()=>numAccount1.value,//监控简单数据类型
    (newNum,oldNum)=>{console.log(newNum,oldNum)},
)
watch(
    ()=>personObj.value,//监控复杂数据类型
    (newNum,oldNum)=>{ console.log(newNum,oldNum);},
    {deep:true,immediate:true}
    //监控复杂数据类型  深度访问和立即执行 初始化要执行一次
)

三、Computed 计算属性

计算属性,具有响应性

computed和定义的函数的区别 :
computed 在数据没有变化的情况下,会拿缓存数据,节约资源,利用性高;而调用函数则会进行重新计算一次

const totalNum= computed(()=>{
    return  numAccount1.value+numAccount2.value;
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值