首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
mini-vue 手写
清火消暑喝玄麦
创建于2023-07-26
订阅专栏
手写一个 mini-vue!
等 7 人订阅
共13篇文章
创建于2023-07-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
『手写Vue3』template -> render
这一节的目标是,用户提供template,生成render函数,并且运行生成的函数,最后渲染出dom。 组件结构: 首先,compiler-core需要一个入口函数,它将依次调用parse->tran
『手写Vue3』transform、生成render
transform transform的作用是遍历AST的每个结点,进行某些修改操作。 比如我们可以指定,每个text结点都增加"mini-vue": 在实现上,为了保持transform的灵活性,使
『手写Vue3』parse
现在,进入编译模块compiler-core,Vue3的编译分为以下三个阶段: parse:由template生成AST。 transform:修改AST的结点内容,使其满足我们的需求。 codege
『手写Vue3』组件更新、nextTick
组件更新 虽然已经实现了diff,但是更新还没做完。 根组件中的setup暴露了ref属性msg和count,把msg传给子组件,并且提供修改msg的方法changeChildProps和修改coun
『手写Vue3』Diff算法
关于Diff算法,大家可能早就知道Vue和React使用vnode,并且使用diff算法完成更新,最大限度减少浏览器对dom的操作,但是估计知道具体实现原理的人并不多,起码我以前一直是懵懂状态。
『手写Vue3』更新
## createRenderer 自上一期完成provide/inject后,我们还实现了createRenderer。 - 目的:支持多平台渲染,之前只支持dom,但是还能支持canvas等
『手写Vue3』getCurrentInstance、provide/inject
getCurrentInstance 这也是Vue3暴露给用户的一个api,它只能在setup中使用,返回当前组件的instance。我们分别在App和Foo组件的setup中调用。 如何在组件中拿到
『手写Vue3』props、emit、slot、fragment、textNode
经过上一期,我们大概知道了runtime-core模块是如何初始化vnode、instance,以及渲染到页面上的,实现了组件代理,并且使用位运算优化了判断类型的实现。这一次在搭好的大框架的基础上,实
『手写Vue3』component、element、组件代理
从这节开始,reactivity暂告一段落,进入runtime-core部分。这部分负责的是组件渲染相关内容,即当我写好app.js文件后,如何挂载component使其显示在页面上,及其相关的问题。
『手写Vue3』Ref & Computed
这一次来搞定Ref,先思考几个问题: 为什么Ref要用.value。 在setup中使用ref需要.value,但是在template中不需要,是如何实现的。
『手写Vue3』嵌套、shallowReadonly和isProxy
这一次的内容比较轻松,首先是让我们上一节实现的isReactive、isReadonly实现嵌套的功能,然后实现shallowReadonly(不支持嵌套),最后是isProxy。
『手写Vue3』Readonly 和优化 Stop
前情提要:上一期我们实现了基本的Effect和Reactive。这一次我们来实现Readonly,isReactive/isReadonly 以及优化Stop。
『手写Vue3』Reactive 和 Effect
使用TDD(测试驱动开发)的方式手写Vue,一起学习Vue3源码。项目地址:https://github.com/DanmoSAMA/my-mini-vue