# theory **Repository Path**: borealRoc/theory ## Basic Information - **Project Name**: theory - **Description**: 简单实现一些框架原理 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-19 - **Last Updated**: 2022-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 目录说明 ## Vue 相关 1. \vue\myVue\ 手写简版Vue 2. \vue\myVueRouter\ 手写简版Vue Router 3. \vue\myVuex\ 手写简版Vuex 4. \vue\myVuex\virtualDOMTheory 虚拟DOM原理浅析 ## React 相关 1. \react\myRedux.js 手写简版Redux 2. \react\myReactRedux.js 手写简版React Redux 3. \react\myReactRouter.js 手写简版React Router ## Node 相关 1. \node\express\my_express.js 手写简版 express 2. \node\koa\my_koa.js 手写简版 koa - 2.1 \node\koa\my_koa_router.js 手写简版 koa-router 中间件 - 2.2 \node\koa\my_koa_static.js 手写简版 koa-static 中间件 3. \node\egg 模仿 egg 手写简单的 MVC 框架 - 3.1 \node\egg\routes 路由 - 3.2 \node\egg\controller 控制器 - 3.3 \node\egg\service 服务层 - 3.4 \node\egg\model 模型层 - 3.5 \node\egg\config\index.js 数据库配置 - 3.6 \node\egg\middle\ 中间件 - 3.7 \node\egg\schedule\ 定时任务 - 3.8 \node\egg\my_egg_roader.js 读取文件目类和代码,创建initRouter, initController, initService, loadConfig, initSchedule等类 - 3.9 \node\egg\my_egg_application.js 创建 MyEgg 类,包含initRouter, initController, initService, loadConfig, initSchedule的实例 - 3.10 \node\egg\index.js 创建 MyEgg 实例,启动项目 ## Webpack 相关 1. \webpack\ 手写简版 webpack - 1.1 \webpack\dist 出口文件 - 1.2 \webpack\src 入口文件 - 1.3 \webpack\bundle.js 启动文件 - 1.4 \webpack\webpack.config.js 配置文件 - 1.5 \webpack\lib\parser.js - getAst: 读取⼊⼝⽂件,分析代码 - getDependcies: 拿到⽂件中依赖 - getCode: 把代码处理成浏览器可运⾏的代码 - 1.6 \webpack\lib\compiler.js - build: 分析文件, 统一返回每个模块的 filename(文件名), dependcies(依赖), code(代码) - run: 遍历每个模块,调用 build 方法分析依赖模块的依赖模块。最后生成构建代码 - file:执行打包(解析代码中的require和exports, 并用eval执行代码),生成打包文件