面试题
文章平均质量分 85
itpeilibo
不怕孤独,努力沉淀;
于淡泊中,平和自在。
展开
-
「Vue3面试系列」Vue3.0的设计目标是什么?做了哪些优化?
这样使得模块拆分更细化,职责划分更明确,模块之间的依赖关系也更加明确,开发人员也更容易阅读、理解和更改所有模块源码,提高代码的可维护性。试想一下,如果很多类似的第三方库,我们只需要调用即可,不必关注实现过程,开发效率大大提高。这种形式,可以将一些复用的代码抽离出来作为一个函数,只要的使用的地方直接进行调用即可。中去递归响应式,这样的好处是真正访问到的内部对象才会变成响应式,而不是无脑递归。,可以将无用模块“剪辑”,仅打包需要的,使打包的整体体积变小了。编写的,提供了更好的类型检查,能支持复杂的类型推导。原创 2023-12-18 16:35:45 · 983 阅读 · 8 评论 -
面试被问到vue的diff算法原理,我不允许你回答不上来
一、是什么 diff 算法是一种通过同层的树节点进行比较的高效算法其有两个特点:比较只会在同层级进行, 不会跨层级比较在diff比较的过程中,循环从两边向中间比较diff 算法在很多场景下都有应用,在 vue 中,作用于虚拟 dom 渲染成真实 dom 的新旧 VNode 节点比较二、比较方式diff整体策略为:深度优先,同层比较,比较的过程中,循环从两边向中间收拢比较只会在同层级进行, 不会跨层级比较当数据发生改变时,订阅者watcher就会调用patch给真实的DOM打补丁通过isSameVnod原创 2023-04-12 08:15:00 · 1834 阅读 · 6 评论 -
「Vue面试题」Vue项目中有封装过axios吗?主要是封装哪方面的?
大部分情况下,请求头都是固定的,只有少部分情况下,会需要一些特殊的请求头,这里将普适性的请求头作为基础配置。当需要特殊请求头时,将特殊请求头作为参数传入,覆盖基础配置。请求,就要把这些比如设置超时时间、设置请求头、根据项目环境判断使用哪个请求地址、错误处理等等操作,都需要写一遍。如果每个页面都发送类似的请求,都要写一堆的配置与错误处理,就显得过于繁琐了。封装的同时,你需要和 后端协商好一些约定,请求头,状态码,请求超时时间…请求拦截器: 根据请求的请求头设定,来决定哪些请求可以访问。原创 2023-04-10 07:41:41 · 739 阅读 · 4 评论 -
「Vue面试题」在项目中你是如何解决跨域的?
代理(Proxy)也称网络代理,是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。CORS (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。一定要注意跨域是浏览器的限制,你用抓包工具抓取接口数据,是可以看到接口已经把数据返回回来了,只是浏览器的限制,你获取不到数据。发送请求中,配置请求的根路径。原创 2023-03-27 07:27:12 · 1337 阅读 · 6 评论 -
「Vue面试题」vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
如果路由很多,可以在应用初始化的时候,只挂载不需要权限控制的路由。取得后端返回的菜单后,根据菜单与路由的对应关系,筛选出可访问的路由,通过。按需挂载,路由就需要知道用户的路由权限,也就是在用户登录进来的时候就要知道当前用户拥有哪些路由权限。如果有嵌套路由,后端功能设计的时候,要注意添加相应的字段,前端拿到数据也要做相应的处理。登录后,获取用户的权限信息,然后筛选有权限访问的路由,在全局路由守卫里进行调用。每次路由跳转的时候都要判断权限,这里的判断也很简单,因为菜单的。动态挂载之间,需要将数据处理一下,将。原创 2023-03-20 08:30:00 · 3793 阅读 · 5 评论 -
「Vue面试题」在vue中为什么data属性是一个函数而不是一个对象
组件中定义data属性,只能是一个函数,如果为组件data直接定义为一个对象,上面讲到组件data必须是一个函数,不知道大家有没有思考过这是为什么呢?在我们定义好一个组件的时候,vue最终都会通过Vue.extend()构成组件实例这里我们模仿组件构造函数,定义data属性,采用对象的形式根实例对象data可以是对象也可以是函数(根实例是单例),不会产生数据污染情况组件实例对象data必须为函数,目的是为了防止多个组件实例对象之间共用一个data,产生数据污染。采用函数的形式,initData时会将其原创 2023-03-13 07:16:58 · 861 阅读 · 2 评论 -
「Vue面试题」动态给vue的data添加一个新的属性时会发生什么?怎样去解决的?
标签绑定点击事件,我们预期点击按钮时,数据新增一个属性,界面也 新增一行。中做一次强制更新,99.9% 的情况,是你在某个地方做错了事。实现数据响应式的,直接动态添加新属性仍可以实现数据响应式。实现数据响应式的,直接动态添加新属性仍可以实现数据响应式。不允许在已经创建的实例上动态添加新的响应式属性。应创建一个新的对象,合并原对象和混入对象的属性。点击按钮,发现结果不及预期,数据虽然更新了(添加新属性的时候,却无法触发事件属性的拦截。同样是响应式的,且触发视图更新。方法,实现新增属性的响应式。原创 2023-03-08 23:17:32 · 3864 阅读 · 2 评论 -
webpack看这一篇就够了
能够理解webpack基本概念和作用能够掌握webpack使用步骤能够使用webpack相关配置能够使用webpack开发服务器能够查阅使用webpack中文文档webpack官网现代 javascript 应用程序的 静态模块打包器 (module bundler)为要学的 vue-cli 开发环境做铺垫把很多文件打包整合到一起, 缩小项目体积, 提高加载速度其中功能:less/sass -> cssES6/7/8 -> ES5 处理js兼容支持js模块化处理css兼容性html/css/js -> 压缩原创 2022-06-20 00:09:47 · 59290 阅读 · 32 评论 -
DNS协议 是什么?DNS 完整的查询过程是怎样的
DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。域名是一个具有层次的结构,从上到下一次为根域名、顶级域名、二级域名、三级域名…为顶级域名,系统为用户做了兼容,域名末尾的根域名。在域名服务器解析的时候,使用缓存保存域名和。除此之外,还有电脑默认的本地域名服务器。相当于一个翻译官,负责将域名翻译成。原创 2022-11-13 20:37:20 · 266 阅读 · 0 评论 -
前端面试题之手写代码篇(超详细讲解,看这一篇就够了)
思路:将传入的对象作为原型2. 手写 instanceof 方法instanceof 运算符用于判断构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。具体实现:3. 手写 new 操作符在调用 的过程中会发生以上四件事情:(1)首先创建了一个新的空对象(2)设置原型,将对象的原型设置为函数的 prototype 对象。(3)让函数的 this 指向这个对象,执行构造函数的代码(为这个新对象添加属性)(4)判断函数的返回值类型,如果是值类型,返回创建的对象。如果是引用类型,就返原创 2022-11-07 08:00:00 · 649 阅读 · 0 评论 -
【JavaScript】js中 typeof 与 instanceof 区别
可以看到,上述两种方法都有弊端,并不能满足所有场景的需求。的基本用法,下面就实现一个全局通用的数据类型判断方法。操作符返回一个字符串,表示未经计算的操作数的类型。也就是顺着原型链去找,直到找到相同的原型对象,返回。如果我们想要判断一个变量是否存在,可以使用。表示对象或原始值的表达式,其类型将被返回。从上面例子,前6个都是基础数据类型。之后返回的是有问题的结果,不能作为判断。如果需要通用检测数据类型,可以采用。同时,可以发现引用类型数据,用。会被识别出来之外,其余的都输出。,调用该方法,统一返回格式。原创 2022-10-04 07:02:53 · 1274 阅读 · 1 评论 -
keep-alive的使用场景跟原理分析(超详细讲解)
一、Keep-alive 是什么 keep-alive`是`vue`中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染`DOM 二、使用场景使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用`keepalive``keep-alive`是`vue`中内置的一个组件源码位置:src/core/components/keep-alive.js...原创 2022-07-27 13:14:21 · 5066 阅读 · 0 评论 -
面试官:Vue中的$nextTick有什么作用?
在修改数据之后立即使用这个方法,获取更新后的 DOM。将开启一个异步更新队列,视图需要等队列中所有数据变化完成之后,再统一进行更新。等待同一事件循环中的所有数据变化完成之后,会将队列中的事件拿来进行处理,进行。每次更新值都会触发视图更新(上面这段代码也就是会更新10万次视图),有了。如果我们一直修改相同数据,异步操作队列还会进行去重。,而是将修改数据的操作放在了一个异步操作队列中。如果想要在修改数据后立刻得到更新后的。节点,却发现获取到的是旧值。机制,只需要更新一次,所以。数据在发现变化的时候,原创 2022-09-20 14:07:05 · 284 阅读 · 0 评论