feat(computed): 实现计算属性缓存优化和调度器支持

- 添加 _dirty 标志位控制计算属性重新执行逻辑
- 在 ReactiveEffect 构造函数中增加调度器参数支持
- 实现计算属性值变更时的依赖触发机制
- 重构 triggerEffects 函数优先处理计算属性依赖
- 新增 EffectScheduler 类型定义统一调度器类型
- 添加 computed-cache.html 示例验证缓存功能
This commit is contained in:
dj
2026-02-08 22:39:34 +08:00
parent 4c60486511
commit c07431db08
3 changed files with 67 additions and 9 deletions

View File

@@ -0,0 +1,28 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Document</title>
<script src="../../dist/vue.js"></script>
</head>
<body>
<div id="app"></div>
</body>
<script>
const { reactive,effect,computed } = Vue
const obj=reactive({
name:'张三'
})
const computedObj= computed(()=>{
console.log('计算属性执行')
return '姓名:'+obj.name
})
effect(()=>{
document.querySelector('#app').innerText=computedObj.value
document.querySelector('#app').innerText=computedObj.value
})
setTimeout(()=>{
obj.name='李四'
},2000)
</script>
</html>