sunnyxujian's blog sunnyxujian's blog
首页
  • JavaScript
  • CSS
  • HTML和浏览器
  • Vue
  • Vue3
  • React
  • 基础知识
  • webpack
  • rollup
  • vite
  • 其他
  • Nodejs
  • 网络
  • TypeScript
  • 架构设计
  • 性能优化
  • 数据结构和算法
  • JavaScript教程 笔记
  • ES6 教程 笔记
  • TypeScript 从零实现 axios
  • Git学习 笔记
  • 渲染器原理
  • TypeScript 笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网站
  • 资源
  • Vue资源
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 友链
  • 关于
GitHub (opens new window)

xujian

劝君惜取少年时。
首页
  • JavaScript
  • CSS
  • HTML和浏览器
  • Vue
  • Vue3
  • React
  • 基础知识
  • webpack
  • rollup
  • vite
  • 其他
  • Nodejs
  • 网络
  • TypeScript
  • 架构设计
  • 性能优化
  • 数据结构和算法
  • JavaScript教程 笔记
  • ES6 教程 笔记
  • TypeScript 从零实现 axios
  • Git学习 笔记
  • 渲染器原理
  • TypeScript 笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网站
  • 资源
  • Vue资源
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 友链
  • 关于
GitHub (opens new window)
全部分类
前端基础 19 JavaScript 12 框架 9 Vue3 2 《渲染器原理》 10 进阶 13 数据结构和算法 2 TypeScript 3 React 7 手写Mini React 2 手写 mini react 2 手写mini-react 1 工程化 13 vite 3 rollup 3 webpack 4 学习笔记 3 基础知识 1 网络 3 其他 2 架构设计 1 ES6 1 NodeJS 2 Vue 1 CSS 16 性能优化 1 《Git》学习笔记 14 Nodejs 2 前端 3 页面 16 收藏夹 3 JavaScript文章 5 技术 13 技术文档 5 Vue文章 2 HTML 1 《ES6 教程》笔记 34 《JavaScript教程》笔记 7 HTML和浏览器 1 《TypeScript 从零实现 axios》 50 ts-axios 项目初始化 3 ts-axios 基础功能实现 6 ts-axios 异常情况处理 2 ts-axios 接口扩展 3 ts-axios 拦截器实现 1 ts-axios 配置化实现 3 ts-axios 取消功能实现 1 ts-axios 更多功能实现 8 ts-axios 单元测试 10 ts-axios 部署与发布 2 TypeScript 常用语法 8 初识 TypeScript 3 博客搭建 3 GitHub技巧 4

😍Vue3和React都在用的函数式编程,学起来~

xujian 2023-02-03 前端基础JavaScript

函数式编程范式在很多框架和库里中使用十分广泛,目前React已经全面拥抱函数式组件,源码中处处体现了函数式编程的思想。Vue3里所有的响应式API都是函数式编程,可以用reactive、watch、computed来组合出各种各样的可复用的逻辑。包括使用很广泛的lodash工具库就是一个典型的函数式编程库,此外包括Redux,Koa,Express里面也有很多是函数式编程。所以学习了解函数式编程范式是很有必要的。

阅读全文

手写vue3-compiler-dom之AST篇

xujian 2021-11-12 框架Vue3 编译

# Template的编译过程

我们都知道,在写vue描述dom结构的时候,可以写template,也可以写render函数,而template也最终会被编译成render函数用于渲染页面。template编译时会分为3个阶段:解析(parsing)、转换(transform)、生成(generate),如下图所示,在parse阶段,vue-compiler模板转换为AST,在transform阶段,对代码进行各种转换和标记,在generator阶段,再用new Function和with的组合,将AST转换成最终render函数。

如下图所示:


-- 图片源自网络,侵删

阅读全文

组件的本质

xujian 2022-03-21 《渲染器原理》 VueVue3

# 组件的本质

当我们使用 Vue 或 React 时,往往会将页面拆分为各种组件,通过拼装组件来形成页面和应用,就像搭积木一样。

那么,大家有没有思考过:"组件的产出是什么?"

阅读全文

链表

xujian 2022-11-24 进阶数据结构和算法

# 1. 什么是链表

要保存多个数据数据时,数组往往是我们最符合直觉的选择,通过索引访问数组中的元素也十分方便。但是在很多编程语言中,数组声明以后长度是固定的,从头部或中间插入数据很麻烦,因为右的所有元素都要向后移动,删除元素的情况也样如此。而且当数组元素放满之后,再推入新的元素也很麻烦。

阅读全文

基础类型

xujian 2022-11-18 进阶TypeScript

搭建TypeScript环境

xujian 2022-11-18 进阶TypeScript

Mini React 之组件实现

xujian 2022-06-16 框架React手写Mini React

Mini React 之渲染器

xujian 2022-06-15 框架React手写Mini React

# 1. 渲染器宏观逻辑介绍

在上一篇文章中,我们实现了如何将jsx编译成React.createElement(...),执行后得到虚拟 DOM。这一章我们循序渐进的讲一下渲染器的基本工作原理,也就是runtime-dom那部分。简单说渲染器就是将 虚拟 DOM 渲染成特定平台下真实 DOM 的工具(本质是一个函数,通常叫 render)。渲染器的工作流程分为两个阶段:mount 和 compareTwoVdom,第一次渲染,由于没有旧的 VNode,直接将新的 VNode 创建成真实的 DOM挂载到指定的容器内,这个过程叫做 mount; 下一次再渲染的时候会生成新的 VNode,则会使用新的 VNode 与上一次生成的旧 VNode 进行对比,以最少的性能开销完成对真实 DOM 的更新,这个过程就叫 “打补丁”,也就是diff的部分。

阅读全文

Mini React 之JXS介绍及实现

xujian 2022-06-09 框架React手写 mini react

# 1. 什么是JSX?

const element = <h1>Hello, world!</h1>;
1

JSX以类似模板语法的方式描述UI的一种语法。它是JS扩展语法,具有 JavaScript 的全部功能,可以在其中使用变量或表达式、函数等。它不能直接在浏览器运行,需要经过编译成标准的js语法才行。

阅读全文

Mini React 之整体架构介绍

xujian 2022-06-07 框架React手写 mini react

mini-react.png

阅读全文

上一页

下一页

全部分类
前端基础 19 JavaScript 12 框架 9 Vue3 2 《渲染器原理》 10 进阶 13 数据结构和算法 2 TypeScript 3 React 7 手写Mini React 2 手写 mini react 2 手写mini-react 1 工程化 13 vite 3 rollup 3 webpack 4 学习笔记 3 基础知识 1 网络 3 其他 2 架构设计 1 ES6 1 NodeJS 2 Vue 1 CSS 16 性能优化 1 《Git》学习笔记 14 Nodejs 2 前端 3 页面 16 收藏夹 3 JavaScript文章 5 技术 13 技术文档 5 Vue文章 2 HTML 1 《ES6 教程》笔记 34 《JavaScript教程》笔记 7 HTML和浏览器 1 《TypeScript 从零实现 axios》 50 ts-axios 项目初始化 3 ts-axios 基础功能实现 6 ts-axios 异常情况处理 2 ts-axios 接口扩展 3 ts-axios 拦截器实现 1 ts-axios 配置化实现 3 ts-axios 取消功能实现 1 ts-axios 更多功能实现 8 ts-axios 单元测试 10 ts-axios 部署与发布 2 TypeScript 常用语法 8 初识 TypeScript 3 博客搭建 3 GitHub技巧 4
Theme by Vdoing | Copyright © 2020-2023 xujian | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式