1. 前端框架原理 现代前端框架几乎都是基于描述自变量和 UI* *视图之间的关系建立的,即“数据驱动视图” $ UI=f(state) $ 前端经过长时间的发展,对于 *UI *的描述语言逐渐衍生出两种解决方案 JSX(代表框架:React):类 XML 语法的 ES 的语法糖 模版语法(代表框架:Vue,Svelte) 2.前端框架分类的依据 对于公式 *UI = f(state) *<font styl...
使用了 import 语法,这是 ES规范,而非 Node.js 的 CommonJS规范。 我们使用了 React 的 JSX 语法,JavaScript 并不认识,需要用 Babel 转译成这样。 修改 package.json: "scripts": { "start": "webpack --config webpack.server.js && node ./build/server.bundle.js" } 此时运行 node server.js 可以成功渲染,但是只用 `re...
CSR 实现SSR之前先实现一遍CSR渲染过程 react-csr |- app.js // 测试组件 |- client.js // react生成出root节点 |- index.html // 入口文件 |- package.json // npm init 自动生成 |- webpack.client.js // 客户端打包配置 安装依赖 npm install webpack webpack-cli babel-loader @...
1.目前的形式 首先不管互联网如何颓势,计算机专业依然是最热门的专业之一,随着高考报考计算机专业的人越来越多,每年计算机专业应届生高达几十万人,但是市场却不能提供这么多的就业岗位,这也就导致了优胜劣汰是必然的,其实说到这也还好,毕竟哪一个行业又不是优胜劣汰呢? 但是,随着2022年ChatGPT的火爆彻底将人工智能的发展推向高潮,想必很多同学都用过这款AI工具来生成代码,其效率不言而喻,我们不难预见也许是五年后,也许是十年后,随着AI技术的迭代,底层程序员将被彻底替代。这绝不是危言耸听,大部分程序员的工作都只是重复写业务代码,这些对于AI来说只要训练到位,是完全可以替...
📖 面试问题 1. 浏览器从输入到显示页面的全过程 用户在浏览器地址栏输入 URL,浏览器通过 DNS 解析获取 IP 地址。 浏览器与服务器建立 TCP 连接,发起 HTTP 请求。 服务器返回 HTML 文件,浏览器解析 HTML、CSS、JavaScript,构建 DOM 树、CSSOM 树,合并成 Render 树。 浏览器渲染页面,进行布局、绘制,最后显示页面。 2. TCP 三次握手过程 第一次握手**:客户端向服务器发送 SYN 包,表示请求建立连接。 第二次握手**:服务器收到请求后,发送 SYN-ACK 包,表示同意...
📖 八股 1. 个人介绍 简要介绍个人背景、教育经历、实习经历以及相关的技术栈。 2. 讲一下 History 路由和 Hash 路由 History 路由**:基于 HTML5 的 history.pushState 和 history.replaceState,支持更灵活的 URL 路由控制,且没有 # 号,URL 更简洁。 Hash 路由**:基于 URL 中的 # 符号,浏览器通过监听 hashchange 事件来进行路由跳转,兼容性好但 URL 有 #,不够美观。 3. 讲一下 TS?TS 和 JS 的...
📚 八股 1. 自我介绍 简要介绍了个人的背景、技术栈、项目经历。 2. 移动端做过哪些优化? 优化了应用的启动速度、内存使用和性能问题,使用了懒加载、图片懒加载、按需加载等技术来减少页面渲染时间。 针对不同设备做了适配优化,使用了响应式设计和媒体查询。 3. 隐藏一个元素有哪些方法?有什么不同? display: none:元素完全从文档流中移除,不占据空间。 visibility: hidden:元素仍占据空间,只是不可见。 opacity: 0:元素不可见,但仍占据空间并可交互。 `position: abso...
🖊️ 手撕五道题 括号匹配问题 给定一个包含括号的字符串,判断是否每个括号都匹配。 常用栈结构来解决,遍历字符串时,遇到左括号入栈,遇到右括号出栈,最后栈为空则匹配成功。 数组去重检查,要求 O(n) 时间 + O(1) 空间 给定一个数组,检查是否有重复元素,要求时间复杂度 O(n),空间复杂度 O(1)。 不允许使用 Set/Map,可能需要利用排序后对比或者其他空间优化技巧,如位运算。 二叉树路径和判断 判断是否存在一条从根节点到叶节点的路径,使得路径上所有节点的...