avatar
文章
130
标签
48
分类
22

首页
归档
标签
分类
关于
BlogMind
搜索
首页
归档
标签
分类
关于

BlogMind

地址栏输入 URL 敲下回车后发生了什么
发表于2024-12-09|更新于2025-02-11|网络|网络
地址栏输入 URL 敲下回车后发生了什么? 一、简单分析简单的分析,从输入 URL到回车后发生的行为如下: URL解析 DNS 查询 TCP 连接 HTTP 请求 响应请求 页面渲染 二、详细分析URL解析首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行对应操作 URL的解析第过程中的第一步,一个url的结构解析如下: DNS查询在之前文章中讲过DNS的查询,这里就不再讲述了 整个查询过程如下图所示: 最终,获取到了域名对应的目标服务器IP地址 TCP连接在之前文章中,了解到tcp是一种面向有连接的传输层协议 在确定目标服务器服务器的IP地址后,则经历三次握手建立TCP连接,流程如下: 发送 http 请求当建立tcp连接之后,就可以在这基础上进行通信,浏览器发送 http 请求到目标服务器 请求的内容包括: 请求行 请求头 请求主体 响应请求当服务器接收到浏览器的请求之后,就会进行逻辑操作,处理完成之后返回一个HTTP响应消息,包括: 状态行 响应头 响应正文 在服务器响应之后,由于现在http默认开始长连接ke ...
HTTP1.0/1.1/2.0 的区别
发表于2024-12-07|更新于2025-02-11|网络|网络
HTTP1.0/1.1/2.0 的区别? 一、HTTP1.0HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本 HTTP 1.0 浏览器与服务器只保持短暂的连接,每次请求都需要与服务器建立一个TCP连接 服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求 简单来讲,每次与服务器交互,都需要新开一个连接 例如,解析html文件,当发现文件中存在资源文件的时候,这时候又创建单独的链接 最终导致,一个html文件的访问包含了多次的请求和响应,每次请求都需要创建连接、关系连接 这种形式明显造成了性能上的缺陷 如果需要建立长连接,需要设置一个非标准的Connection字段 Connection: keep-alive 二、HTTP1.1在HTTP1.1中,默认支持长连接(Connection: keep-alive),即在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟 建立一次连接,多次请求均由这个连接完成 这样,在加载html文件的时候,文件中多个请求和响应就可以在一个连接中传输 同 ...
为什么data属性是一个函数而不是一个对象?
发表于2024-11-21|更新于2025-02-08|Vue|面试•Vue
一、实例和组件定义data的区别vue实例的时候定义data属性既可以是一个对象,也可以是一个函数 12345678910111213const app = new Vue({ el:"#app", // 对象格式 data:{ foo:"foo" }, // 函数格式 data(){ return { foo:"foo" } }}) 组件中定义data属性,只能是一个函数 如果为组件data直接定义为一个对象 123456Vue.component('component1',{ template:`<div>组件</div>`, data:{ foo:"foo" }}) 则会得到警告信息 警告说 ...
你了解vue的diff算法吗?说说看
发表于2024-11-17|更新于2025-02-08|Vue|面试•Vue
一、是什么diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: 比较只会在同层级进行, 不会跨层级比较 在diff比较的过程中,循环从两边向中间比较 diff 算法在很多场景下都有应用,在 vue 中,作用于虚拟 dom 渲染成真实 dom 的新旧 VNode 节点比较 二、比较方式diff整体策略为:深度优先,同层比较 比较只会在同层级进行, 不会跨层级比较 比较的过程中,循环从两边向中间收拢 下面举个vue通过diff算法更新的例子: 新旧VNode节点如下图所示: 第一次循环后,发现旧节点D与新节点D相同,直接复用旧节点D作为diff后的第一个真实节点,同时旧节点endIndex移动到C,新节点的 startIndex 移动到了 C 第二次循环后,同样是旧节点的末尾和新节点的开头(都是 C)相同,同理,diff 后创建了 C 的真实节点插入到第一次创建的 D 节点后面。同时旧节点的 endIndex 移动到了 B,新节点的 startIndex 移动到了 E 第三次循环中,发现E没有找到,这时候只能直接创建新的真实节点 E,插入到第二 ...
你有写过自定义指令吗?自定义指令的应用场景有哪些?
发表于2024-11-15|更新于2025-02-08|Vue|面试•Vue
一、什么是指令开始之前我们先学习一下指令系统这个词 指令系统是计算机硬件的语言系统,也叫机器语言,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力 在vue中提供了一套为数据驱动视图更为方便的操作,这些操作被称为指令系统 我们看到的v- 开头的行内属性,都是指令,不同的指令可以完成或实现不同的功能 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令 指令使用的几种方式: 1234567891011121314//会实例化一个指令,但这个指令没有参数 `v-xxx`// -- 将值传到指令中`v-xxx="value"` // -- 将字符串传入到指令中,如`v-html="'<p>内容</p>'"``v-xxx="'string'"` // -- 传参数(`arg`),如`v-bind:class="className"``v-xxx:arg=&q ...
你是怎么处理vue项目中的错误的?
发表于2024-11-12|更新于2025-02-08|Vue|面试•Vue
一、错误类型任何一个框架,对于错误的处理都是一种必备的能力 在Vue 中,则是定义了一套对应的错误处理规则给到使用者,且在源代码级别,对部分必要的过程做了一定的错误处理。 主要的错误来源包括: 后端接口错误 代码中本身逻辑错误 二、如何处理后端接口错误通过axios的interceptor实现网络请求的response先进行一层拦截 12345678910111213apiClient.interceptors.response.use( response => { return response; }, error => { if (error.response.status == 401) { router.push({ name: "Login" }); } else { message.error("出错了"); return Promise.reject(error); ...
Vue中的过滤器了解吗?过滤器的应用场景有哪些?
发表于2024-10-31|更新于2025-02-08|Vue|面试•Vue
一、是什么过滤器(filter)是输送介质管道上不可缺少的一种装置 大白话,就是把一些不必要的东西过滤掉 过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理解其为一个纯函数 Vue 允许你自定义过滤器,可被用于一些常见的文本格式化 ps: Vue3中已废弃filter 二、如何用vue中的过滤器可以用在两个地方:双花括号插值和 v-bind 表达式,过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示: 12345<!-- 在双花括号中 -->{{ message | capitalize }}<!-- 在 `v-bind` 中 --><div v-bind:id="rawId | formatId"></div> 定义filter在组件的选项中定义本地的过滤器 1234567filters: { capitalize: function (value) { if (!value) ...
SPA首屏加载速度慢的怎么解决?
发表于2024-10-21|更新于2025-02-08|Vue|面试•Vue
一、什么是首屏加载首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容 首屏加载可以说是用户体验中最重要的环节 关于计算首屏时间利用performance.timing提供的数据: 通过DOMContentLoad或者performance来计算出首屏时间 123456789101112131415// 方案一:document.addEventListener('DOMContentLoaded', (event) => { console.log('first contentful painting');});// 方案二:performance.getEntriesByName("first-contentful-paint")[0].startTime// performance.getEntriesByName("first-contentfu ...
基于 Vue3 的前端工程化实践
发表于2024-10-11|更新于2025-02-08|前端工程化|最佳实践•Vue3•工程化
一、工程化概述Vue3 项目工程化主要包含以下几个方面: 项目搭建(Vite + Vue3 + TypeScript) 代码规范 组件设计 状态管理 自动化部署 二、具体实现1. 项目搭建1.1 目录结构1234567891011121314├── src/│ ├── api/ # API 接口│ ├── assets/ # 静态资源│ ├── components/ # 公共组件│ ├── composables/ # 组合式函数│ ├── layouts/ # 布局组件│ ├── pages/ # 页面组件│ ├── stores/ # Pinia 状态管理│ ├── styles/ # 全局样式│ ├── types/ # 类型定义│ └── App.vue # 根组件├── env.d.ts # 环境变量类型声明├── vite.config.ts # Vite 配置└── tsconfig.json ...
v-if和v-for的优先级是什么?
发表于2024-09-20|更新于2025-02-08|Vue|面试•Vue
一、作用v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名 在 v-for 的时候,建议设置key值,并且保证每个key值是独一无二的,这便于diff算法进行优化 两者在用法上 12345<Modal v-if="isShow" /><li v-for="item in items" :key="item.id"> {{ item.label }}</li> 二、优先级v-if与v-for都是vue模板系统中的指令 在vue模板编译的时候,会将指令系统转化成可执行的render函数 示例编写一个p标签,同时使用v-if与 v-for 12345<div id="app"> ...
1…456…13
avatar
Answer Ran
欢迎来到我的博客,这里是一个分享技术与生活的空间,希望能带给大家有价值的内容😉
文章
130
标签
48
分类
22
公告
努力更新中......面试ing......

微信交流群
扫码加入交流群,一起学习进步
最新文章
2.19 前端面试复盘(四)2025-02-21
2.19 前端面试复盘(四)2025-02-19
如何实现高性能的虚拟滚动?2025-02-18
2.15 前端面试复盘(三)2025-02-15
2.15 前端面试复盘(二)2025-02-15
分类
  • AI1
  • JavaScript36
  • Vue43
  • webpack3
  • 交互1
  • 前端15
    • 地图开发1
    • 工程化1
标签
webpack 基建 JavaScript 组件库 微前端 前端 免疫力 AI伦理 部署 真菌感染 WebSocket AI 前端开发 前端路由 人工智能 DevOps 错误处理 职场 面试 地图 鼻窦炎 前端优化 生活方式 Vue 最佳实践 即时通讯 架构 前端监控 健康 网络通信 性能优化 微信小程序 前端特效 Excel Vue3 工程化 未来发展 网络 Vuex CSS
归档
  • 二月 202516
  • 一月 202512
  • 十二月 202414
  • 十一月 20244
  • 十月 20243
  • 九月 20245
  • 八月 20248
  • 七月 202413
网站资讯
文章数目 :
130
本站访客数 :
本站总访问量 :
最后更新时间 :
©2025 Answer Ran
搜索
数据库加载中