首页
学习
活动
专区
工具
TVP
发布

纸上得来终觉浅

专栏成员
38
文章
43935
阅读量
21
订阅数
一些库的源码阅读笔记
vue3: https://gitee.com/wanyicheng666/code-comments/tree/master/Vue
wanyicheng
2021-04-25
4750
Vue3源码阅读笔记之异步组件
// 看下vue的异步组如何实现的 // implementation, close to no-op // 外部调用API function defineComponent(options) {
wanyicheng
2021-04-13
1.2K0
Vue3源码阅读笔记之组件是如何实现
// vue是如何把一个type是一个组件配置对象的vnode变成实际可以被插入到dom树中的vnode的呢? /** * 我们一般会这样声明一个root组件 * { * data() { * ... * }, * mounted() {...}, * template: '<div class="xxx">...</div>' * } * * 而实际可以直接插入的对应vnode结构会有一个组件实例存储用户的钩子函数,同时有一个render函数控制生成template对应
wanyicheng
2021-04-13
1.4K0
Vue3源码阅读笔记之vnode定义
// vnode定义:一种模拟dom节点的数据结构,其中包含的信息可以支撑vue去生成实际的dom节点,并正确同步所有用户设置的信息到dom上。 // 来看看vue中vnode相关实现: // 检测
wanyicheng
2021-04-13
2.8K0
Vue3源码阅读笔记之事件队列
总结一下:vue中的事件队列分3种,vue内部实现中主要是把render函数的包裹体effect放到queue队列中。
wanyicheng
2021-04-13
1.4K0
Vue3源码阅读笔记之$emit实现
总结:组件实例上的 emit 方法其实就是调用props中从父组件传进来的一个箭头函数。
wanyicheng
2021-04-13
3K0
Vue3源码阅读笔记之数据响应式
总结:Vue3中的数据响应式实现是一个较为独立的实现,适合单独分析学习哈。上文是删除了部分支线逻辑的版本,只保留了主线逻辑,大家如果想看完整的实现,还是建议去读源码哦。
wanyicheng
2021-04-12
6990
Vue3源码阅读笔记之整体执行顺序简介(2)
可以看到,目前只是直接对组件实例的data做了一次代理,handlers在普通对象情况下为 baseHandlers
wanyicheng
2021-04-12
1.4K0
Vue3源码阅读笔记之整体执行顺序简介(1)
从Vue官网得到源码(https://unpkg.com/vue@next),拷贝到本地文件,然后创建如下html:
wanyicheng
2021-04-12
1.2K0
libuv源码阅读(23)--tcp-echo-server
listen完了之后run loop等待socket可读,新连接到来,执行指定回调
wanyicheng
2021-03-14
1.2K0
libuv源码阅读(22)--spawn
总结:父进程fork出子进程去执行指定的文件或者应用,双方根据参数设置的共享fd来通信,这个示例比较简单,父进程只需要等待结束捕获信号就可以了。
wanyicheng
2021-03-14
2.6K0
libuv源码阅读(21)--uvtee
uv_write_s 类型是由普通ref以及cb和一些写操作有关的信息组成,然后它需要一个 uv_stream_t* handle 来配合使用。
wanyicheng
2021-03-13
1.1K0
libuv源码阅读(20)--uvcat
先看用例源码: #include <assert.h> #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <uv.h> void on_read(uv_fs_t *req); // 几个req请求 uv_fs_t open_req; uv_fs_t read_req; uv_fs_t write_req; // 读写的缓冲区都是这个 static char buffer[1024]; static uv_buf_t
wanyicheng
2021-03-13
5950
libuv源码阅读(19)--vustop
先看用例源码: #include <stdio.h> #include <uv.h> int64_t counter = 0; void idle_cb(uv_idle_t *handle) { printf("Idle callback\n"); counter++; // 计数停止 if (counter >= 5) { uv_stop(uv_default_loop()); printf("uv_stop() called\
wanyicheng
2021-03-13
3560
libuv源码阅读(18)--progress
总结:用户自己初始化的async handler 也可以被插入到异步handler队列中,当管道[0]可读的时候,代表某个异步handler可以处理了,这时候遍历队列,处理pengding状态的handler。
wanyicheng
2021-03-13
5330
libuv源码阅读(17)--queue-cancel
总结:cancel把会work从待处理的队列中移动到loop的wq就绪队列中,然后让loop的异步任务handler来处理它
wanyicheng
2021-03-13
4310
libuv源码阅读(16)--signal
总结:信号处理handler是被插入到红黑树中,按照一定规则排序插入的,信号越小,不带oneshot等规则。信号处理函数统一触发信号管道可读,然后loop从信号io管道可读端读取信号结构体,执行这个信号上的handler的回调。大概主体流程就是这样的。跟我们平常自己写某些信号的handler的方法类似:注册信号和信号函数,触发信号管道可读,主循环捕获io可读事件,根据信号值调用对应回调。
wanyicheng
2021-03-13
2.2K1
libuv源码阅读(15)--ref-timer
主要包含 timercb 和用于最小时间堆节点字段heap_node等;它由一个基础hanlder类型和自身独有的属性构成
wanyicheng
2021-03-13
6260
libuv源码阅读(14)--queue-work
其实就是调用 uv__work_submit 提交一个任务给任务队列,跟loop的io事件多线程异步化一样的处理逻辑,这里2个cb分别对应work和done函数,逻辑执行几乎一致,就不再展开分析了。
wanyicheng
2021-03-13
6900
libuv源码阅读(13)--plugin
功能很简单:载入启动参数中对应的插件动态库,调用它们的 initialize 方法
wanyicheng
2021-03-13
4180
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档