watchEffect的简易版 - 源码系列8

写 watchEffect了,这个真真算容易了!

目标 watchEffect

首先看下,目标 watchEffect 的功能:

js 复制代码
import {
  reactive,
  effect,
  watch,
  watchEffect,
} from '../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.js';
// import { reactive, effect,watch } from './reactivity.js';
const obj = reactive({
  name: 'hua',
  age: 4,
});
// 默认是异步,这边暂时只实现同步
watchEffect(
  () => {
    console.log(obj.name);
  },
  { flush: 'sync' }
);
obj.name = 'hua changed';

没有加配置的 watchEfect,默认是异步执行的,这里先将其设置为同步,异步之后再写。

分析 watchEffect

  • watchEffect 是一个函数,可以有 2 个参数
  • 第一个参数,是回调函数
  • 第二个参数,是配置项,暂时不管

最重点的是,这个和 effect 走起来基本一模一样啊!所以,嗯!

写 watchEffect

reactivity/src/apiWatch下:

js 复制代码
export function watchEffect(cb) {
  const _effect = new ReactiveEffect(cb, null);
  _effect.run();
}

换回自己的,就可以了!

相关推荐
2501_9445210010 分钟前
rn_for_openharmony商城项目app实战-主题设置实现
javascript·数据库·react native·react.js·ecmascript
北辰alk15 分钟前
Vue 路由跳转完全指南:8种跳转方式深度解析
vue.js
北辰alk20 分钟前
Vue v-for 遍历对象顺序完全指南:从混乱到可控
vue.js
m0_4711996323 分钟前
【场景】如何快速接手一个前端项目
前端·vue.js·react.js
北辰alk24 分钟前
Vue Router 中 route 和 router 的终极区别指南
vue.js
榴莲CC44 分钟前
抗干扰LED数显屏驱动VK1624 数码管显示芯片 3线串行接口
前端
lili-felicity1 小时前
React Native for Harmony 个人消息列表最新消息置顶实现(多维度权重统计)
javascript·react native·react.js
Tigger1 小时前
用 Vue 3 做了一套年会抽奖工具,顺便踩了些坑
前端·javascript·vue.js
天天扭码1 小时前
一文搞懂——React 19到底更新了什么
前端·react.js·前端框架
weixin_462446231 小时前
【原创】使用langchain与MCP 与 Chrome DevTools 打造可调用浏览器工具的 Chat Agent
前端·langchain·chrome devtools