HTTP/2 与 HTTP/1 的区别 - 性能提升和新特性
- HTTP/2 相较于 HTTP/1 有以下区别:
- 多路复用:HTTP/2 允许在同一个 TCP 连接上同时发送多个请求和响应,提高了并发性能。
- 二进制分帧:HTTP/2 采用二进制格式传输数据,将请求和响应拆分为多个帧,提高了传输效率。
- 头部压缩:HTTP/2 使用 HPACK 算法对头部字段进行压缩,减少了数据传输量。
- 服务器推送:HTTP/2 支持服务器主动推送资源给客户端,减少了额外的请求。
- 请求优先级:HTTP/2 支持设置请求优先级,可以更加灵活地控制请求的处理顺序。
- Vue Router 的 hash 模式和 history 模式的区别:
- hash 模式:URL 中会有一个 # 符号,通过监听 URL 的 hash 变化来进行页面切换,不会向服务器发送请求,兼容性较好。
- history 模式:URL 中没有 # 符号,通过 HTML5 的 history API 来进行页面切换,需要服务器的支持,支持浏览器的前进和后退操作。
-
Vue 的单页面应用(SPA)通过使用 Vue Router 来实现。Vue Router 通过定义路由表,根据不同的 URL 路径加载对应的组件,实现页面的无刷新切换。
-
Vue 3 相较于 Vue 2 在性能上有以下改进:
- 更快的渲染:Vue 3 使用了新的响应式系统,减少了响应式数据的内部追踪,提高了渲染性能。
- 更小的体积:Vue 3 采用了模块化的设计,可以按需加载,减小了打包的体积。
- 更快的启动:Vue 3 使用了编译时的优化,减少了初始化的时间。
- 更好的 Tree-shaking:Vue 3 对 Tree-shaking 进行了优化,可以更好地去除无用代码。
- Vue 3 的新特性包括:
- Composition API:引入了 Composition API,提供了一种更灵活、更可组合的组件逻辑复用方式。
- Teleport:新增了 Teleport 组件,可以将组件渲染到 DOM 树中的任何位置。
- Suspense:引入了 Suspense 组件,可以优雅地处理异步组件的加载状态。
- Fragments:支持使用 Fragments 来组织多个根级别的组件。
- 其他改进:包括优化的响应式系统、改进的编译器、更好的 TypeScript 支持等。
- TypeScript 中,type 和 interface 的区别:
- type:type 关键字用于声明类型别名,可以给一个类型起一个新的名称,可以使用联合类型、交叉类型、字面量类型等。
- interface:interface 关键字用于声明接口,可以定义对象的结构,包括属性、方法、索引签名等。
- 导入模块方式的区别:
- CommonJS:使用 require() 函数进行导入,适用于 Node.js 环境,支持动态导入。
- ES6 模块:使用 import 语句进行导入,适用于现代浏览器环境,支持静态导入。
- 箭头函数和普通函数的区别:
- 语法:箭头函数使用箭头(=>)来定义函数,普通函数使用 function 关键字定义。
- this 指向:箭头函数没有自己的 this,会捕获外层作用域的 this 值,普通函数的 this 指向调用它的对象。
- arguments 对象:箭头函数没有 arguments 对象,可以通过 Rest 参数来获取所有传入的参数。
- 构造函数:箭头函数不能用作构造函数,不能使用 new 关键字实例化。
- 缓存机制是指将计算结果存储起来,以便后续使用,避免重复计算。常见的缓存机制包括:
- 内存缓存:将计算结果存储在内存中,可以快速读取,但会占用一定的内存空间。
- 硬盘缓存:将计算结果存储在硬盘上,可以持久化保存,但读取速度相对较慢。
- CDN 缓存:将静态资源缓存在 CDN 节点上,加快资源加载速度。
- 浏览器缓存:将网页的静态资源缓存在浏览器中,减少请求次数。
- RxJS 是一个响应式编程库,通过使用 Observables、Operators 和 Schedulers 等概念,提供了一种更灵活和可组合的异步编程方式。与 Promise 相比,RxJS 的优势在于:
- 可取消性:Observables 可以通过取消订阅来中断异步操作,而 Promise 一旦开始就无法取消。
- 可组合性:Observables 可以通过 Operators 进行组合,形成更复杂的异步操作链,而 Promise 只能进行简单的串行操作。
- 更多的操作符:RxJS 提供了丰富的操作符,可以进行过滤、映射、合并等更多的操作,而 Promise 的操作相对较少。
- Vue 和 React 都是流行的前端框架,它们的异同点包括:
- 声明式渲染:Vue 和 React 都采用了声明式的方式来描述页面的渲染结果。
- 组件化开发:Vue 和 React 都支持组件化开发,将页面拆分为多个独立的组件进行开发。
- 双向数据绑定:Vue 使用了双向数据绑定,可以自动更新视图和数据,而 React 采用了单向数据流。
- 生态系统:React 的生态系统较大,社区活跃,有丰富的第三方库和组件;Vue 的生态系统也在不断发展,有一些特色的功能和工具。
- 学习曲线:Vue 相对来说较易上手,学习成本较低;React 的学习曲线较陡峭,需要理解一些概念和思想。
- BFC(块级格式化上下文)是指一个独立的渲染区域,具有一套渲染规则,规定了内部块级元素的布局方式。BFC 的主要作用包括:
- 清除浮动:BFC 可以包裹浮动元素,防止浮动元素对其他元素的影响。
- 防止边距重叠:BFC 的垂直外边距不会重叠,可以避免一些布局问题。
- 自适应两栏布局:通过触发 BFC 可以实现两栏布局,一栏固定宽度,一栏自适应宽度。
- 手写括号匹配的算法可以使用栈来实现。遍历字符串的每个字符,遇到左括号时将其入栈,遇到右括号时判断栈顶元素是否为对应的左括号,如果是则将栈顶元素出栈,否则括号不匹配。遍历完字符串后,如果栈为空,则括号匹配成功,否则括号不匹配。
原文地址: https://www.cveoy.top/t/topic/l468 著作权归作者所有。请勿转载和采集!