全部文章
共 1299 篇文章
网络代理详解
一、 的基础概念 1\. 什么是代理? 代理是一种通过中间服务器来帮助 访问目标服务器的技术。代理服务器位于客户端与服务器之间,充当两者的中介,从而实现客户端和服务器之间的隔离。用户的所有请求经过代理后,再发往目标服务器,而目标服务器的响应则返回代理,再由代理传递给用户。 2\. 网络代理的工作流程 在基本的网络代理工作流程中, 扮演了“请求转发者”和“响应返回者”的角色: 1. 客户端请求 :客户端将请求发送到代理服务器,而不是直接发...
Babel 全面解析(原理+实践指南)
一、核心定位与架构 Babel工作流程图 1\. 技术定位 JavaScript 编译器 :将新版JS代码转换为旧版 语法转换器 :处理新语法特性 代码转换平台 :支持插件扩展 2\. 核心架构 输入代码 解析器 AST抽象语法树 转换器 生成器 输出代码 二、核心组件详解 1\. 核心包对比 | 包名 | 作用 | 必要程度 | | | | | | @babel/core | Babel编译核心引擎 | 必...
Browserslist: caniuse-lite is outdated
问题 然后就出现这样的情况 在开发时,不知道动了哪块蛋糕,突然页面变成了这样子,打开控制台 后,发现定义的px都被转换成了 rem,而且比较小,因此出现了这样的情况 分析 caniuse lite已过时 Browserslist 帮助我们在 和包大小之间保持适当的平衡。 使用 Browserslist,可以做到覆盖更广泛的受众(浏览器),同时包的体积也会保持最小化。 为什么要定期更新 caniuse lite 浏览器兼容性:canius...
了解babel的作用、原理、基本使用,为什么有babel,以及在webpack中的babel-loader
一、为什么有 ? babel是一个工具链,如今大多数的浏览器都支持 +的语法和特性,但难免有些旧版本的浏览器是不支持的,为了兼容这些旧版本的浏览器,有了babel这一个 JavaScript 编译器。它能为我们做一些事情:对更高级的语法进行转换,引入第三方 polyfill 模块,对旧版本浏览器不支持的特性打补丁(补充缺失的功能)。 二、基本使用 1.命令行使用 安装以下包: 运行此命令将 目录下的所有代码编译到 dist目录: 也可以...
什么是Polyfill?在Node.js中如何使用Polyfill
在 中,面试官经常会问一些关于浏览器兼容性和代码适应性的问题。其中,“什么是Polyfill?在Node.js中如何使用Polyfill?”这一题目就是一个典型实例。本文将详尽介绍Polyfill的概念、使用场景,并通过具体示例代码展示如何在Node.js中使用Polyfill。 什么是Polyfill? Polyfill是一种代码或插件,通过为浏览器提供尚未支持的原生功能,使得现代JavaScript特性可以在旧版浏览器或JavaSc...
TypeScript 中的 interface和 type 类型有什么区别?它们各自有什么用途?
在 TypeScript 中, 和 都可以用于定义类型,但它们有一些细微的差异和特定的应用场景。下面我们详细比较它们的 区别 、 相同点 以及 各自的用途 。 一、相同点 1. 描述对象的结构 : 和 都可以用来描述对象的结构。 2. 都支持可选属性和只读属性 : 3. 都可以扩展 (类似于继承)。不过扩展的方式不同(具体见下文)。 二、区别 | 特性 | interface | type | | | | | | 定义方式 | 使用 关...
vue设计模式总结-vue中主要用到了那些设计模式
Vue 中主要用到的设计模式包括: 一.观察者模式(Observer Pattern): Vue 使用观察者模式来实现数据的响应式,当数据发生变化时,相关的视图会自动更新。 举个栗子: 1. 数据绑定 :在Vue模板中使用双向数据绑定 ,当输入框中的内容发生变化时,绑定的数据也会相应地更新,这就是观察者模式的应用。 1. 计算属性 :Vue中的计算属性会依赖于其所引用的数据,在相关数据发生变化时,计算属性会重新计算并更新,这也是观察者模...
一文讲清楚为啥React Hook不能写在条件语句里
在官方文档 中,对于 Hook 使用规则叙述如下: Hook 就是 JavaScript 函数,但是使用它们会有两个额外的规则: 只能在 函数最外层 调用 Hook。不要在循环、条件判断或者子函数中调用。 只能在 React 的函数组件 中调用 Hook。不要在其他 JavaScript 函数中调用。(还有一个地方可以调用 Hook —— 就是自定义的 Hook 中,我们稍后会学习到。) 可以看到,官方文档中明确说明了,不要在循环、条件...
手写async await核心原理
前言 async await 语法是 ES7出现的,是基于ES6的 promise和generator实现的 generator函数 在之前我专门讲个generator的使用与原理实现,大家没了解过的可以先看那个 这里就不再赘述generator,专门的文章讲专门的内容。 await在等待什么 我们先看看下面这代码,这是async await的最简单使用,await后面返回的是一个Promise对象: 但不知你有没有想过一个问题,为什么...