首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端面试题锦集:第二期

什么时候数据不是响应式 只有当实例创建已经存在data中的属性才是响应式的。如果用vm.b = 'test',那么修改这个值将没有任何作用。...只响应式依赖发生改变才会重新求值。 计算属性 vs 侦听属性 计算属性默认只有getter属性,也可以需要设置setter方法。...额外的,每次父级组件发生变更,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。...只有在做出浏览器动作,才会触发该事件,如用户点击浏览器的回退按钮(或者Javascript代码中调用history.back()或者history.forward()方法)。...不同的浏览器加载页面处理popstate事件的形式存在差异。页面加载Chrome和Safari通常会触发(emit )popstate事件,但Firefox则不会。

1.5K20

哪些vue面试题是经常会被问到的

,导致加载速度慢的因素可能如下:网络延时问题资源文件体积是否过大资源是否重复发送请求去加载加载脚本的时候,渲染内容堵塞了三、解决方案常见的几种SPA首屏优化方式减小入口文件积静态资源本地缓存UI框架按需加载图片资源的压缩组件重复打包开启.../components/ShowBlogs.vue')]以函数的形式加载路由,这样就可以把各自的路由文件分别打包,只有解析给定的路由,才会加载路由组件2....的优势:更好的SEO首屏加载速度更快SSR的缺点:开发条件会受到限制,服务器端渲染只支持beforeCreate和created两个钩子;当需要一些外部扩展库需要特殊处理,服务端渲染应用程序也需要处于...它的生命周期中有多个事件钩子,让我们控制整个Vue实例的过程更容易形成好的逻辑。vue生命周期总共有几个阶段? 它可以总共分为8个阶段:创建前/后、载入前/后、更新前/后、销毁前/销毁后。...- .self 只当在 event.target 是当前元素自身触发处理函数- .once 事件将只会触发一次- .passive 告诉浏览器你不想阻止事件的默认行为**v-model 的修饰符**-

98210
您找到你想要的搜索结果了吗?
是的
没有找到

三年经验前端vue面试记录

事件的销毁Vue 组件销毁,会自动清理它与其它实例的连接,解绑它的全部指令及事件监听器,但是仅限于组件本身的事件。...路由懒加载Vue 是单页面应用,可能会有很多的路由引入 ,这样使用 webpcak 打包后的文件很大,当进入首页加载的资源过多,页面会出现白屏的情况,不利于用户体验。...contact 等)的 SEO,那么你可能需要预渲染,构建简单地生成针对特定路由的静态 HTML 文件。...创建一个emit.js文件,用于vue事件机制的管理。webpack:模块加载和vue-cli工程打包器。...this.vm = vm this.key = key this.updaterFn = updater // 创建实例,把当前实例指定到Dep.target静态属性上

2K30

浏览器层面优化前端性能(1):Chrom组件与进程线程模型分析

而在应用程序中,为了满足功能的需要,启动的进程会创建另外的新的进程来处理其他任务,这些创建出来的新的进程拥有全新的独立的内存空间,不能与原来的进程内向内存,如果这些进程之间需要通信,可以通过IPC机制(...事件触发线程当一个事件被触发该线程会把事件添加到待处理队列的队尾,等待JS引擎的处理。...异步http请求线程XMLHttpRequest连接后是通过浏览器新开一个线程请求,将检测到状态变更,如果设置有回调函数,异步线程就产生状态变更事件放到JS引擎的处理队列中等待处理。...//flags/#network-service-in-process修改配置,将其其作为线程运行在Browser Process中storage thread: 控制文件等的访问;处理过程解析处理输入当我们浏览器的地址栏输入内容按下回车...所以Chrome浏览器为SharedWorker单独创建一个进程来运行JavaScript程序浏览器中每个相同的JavaScript只存在一个SharedWorker进程,不管它被创建多少次。

83010

浏览器层面优化前端性能(1):Chrom组件与进程线程模型分析

而在应用程序中,为了满足功能的需要,启动的进程会创建另外的新的进程来处理其他任务,这些创建出来的新的进程拥有全新的独立的内存空间,不能与原来的进程内向内存,如果这些进程之间需要通信,可以通过IPC机制(...事件触发线程当一个事件被触发该线程会把事件添加到待处理队列的队尾,等待JS引擎的处理。...异步http请求线程XMLHttpRequest连接后是通过浏览器新开一个线程请求,将检测到状态变更,如果设置有回调函数,异步线程就产生状态变更事件放到JS引擎的处理队列中等待处理。...//flags/#network-service-in-process修改配置,将其其作为线程运行在Browser Process中storage thread: 控制文件等的访问;处理过程解析处理输入当我们浏览器的地址栏输入内容按下回车...所以Chrome浏览器为SharedWorker单独创建一个进程来运行JavaScript程序浏览器中每个相同的JavaScript只存在一个SharedWorker进程,不管它被创建多少次。

73110

Vue 全家桶、原理及优化简议

Mutators:事件处理器用来驱动状态的变化。 Actions:可以给组件使用的函数,以此用来驱动事件处理器 mutations。(注:此许或许称之为EventHandler更为恰当。)...发送请求后,使用then方法来处理响应结果,then方法有两个参数,第一个参数是响应成功的回调函数,第二个参数是响应失败的回调函数。...也可以通过 vue ui 命令以图形化界面创建和管理项目: vue ui 运行 npm run serve 调度工具Devtools vue调试方面,可以选择安装chrome插件vue Devtools...使用异步组件(动态组件) app bundle 文件过大,可以尝试通过组件懒加载优化。 动态组件主页面加载是不会加载,等到触发条件加载该组件,并且加载一次后就有缓存。...如果组件页面加载不需要,只调用时用到,这时可以使用异步组件的写法。

2K40

印象最深的一个bug——排查修复问题事件BEX引发的谷歌浏览器闪退崩溃异常

前言 最近,我们部门负责项目运维的小王频频接到甲方的反馈,运行的项目使用谷歌浏览器登录后,每次点击处理2秒后,浏览器自动闪退崩溃.小王同学折腾了一个星期,还没找到问题的原因.甲方客户都把问题反馈给项目经理了...dll文件 点击查看问题详细信息,查看浏览器崩溃的问题签名 问题签名:   问题事件名称:  BEX   应用程序名:  chrome.exe   应用程序版本:  69.0.3497.100   应用程序时间戳...通过浏览器导航栏中输入以下路径查看加载的dll文件位置: chrome://conflicts/ 将原来的dll备份到其余文件夹,用于后续恢复 软件文件夹中删除软件中造成冲突的dll文件 修复造成冲突的软件...删除造成冲突的dll文件只是暂时解决浏览器停止工作的问题 因为dll文件软件的运行依赖,如果随便删除会导致软件本身运行异常 如果想要彻底解决BEX问题事件,需要修复造成冲突的软件,大部分是软件本身存在问题...> Windows => CodeIntegrity => 可操作 查找问题事件ID为3033的事件 点击问题事件的详细信息,会显示导致浏览器崩溃的dll文件的名称和位置 Google Chrome显示模块加载列表

1.4K60

谷歌浏览器问题事件BEX引起的闪退崩溃异常的修复与思考

前言 最近,我们部门负责项目运维的小王频频接到甲方的反馈,运行的项目使用谷歌浏览器登录后,每次点击处理2秒后,浏览器自动闪退崩溃.小王同学折腾了一个星期,还没找到问题的原因.甲方客户都把问题反馈给项目经理了...删除造成冲突的dll文件 点击查看问题详细信息,查看浏览器崩溃的问题签名问题签名:   问题事件名称:  BEX   应用程序名:  chrome.exe   应用程序版本:  69.0.3497.100...通过浏览器导航栏中输入以下路径查看加载的dll文件位置: 将原来的dll备份到其余文件夹,用于后续恢复 软件文件夹中删除软件中造成冲突的dll文件 修复造成冲突的软件 删除造成冲突的dll文件只是暂时解决浏览器停止工作的问题...HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome 中   - 右侧的窗口中,右键单击新建, 选择DWORD(32位)值创建新的密钥...=> CodeIntegrity => 可操作 查找问题事件ID为3033的事件 点击问题事件的详细信息,会显示导致浏览器崩溃的dll文件的名称和位置 Google Chrome显示模块加载列表 导航栏输入以下路径

3.8K83

vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础

目录结构: build:项目构建相关代码 config:配置目录,包括端口号等 mode_modules:npm加载的项目依赖模块 src: assets:放置一些图片,components:目录里面放了一些组件文件...Vue地址: https://unpkg.com/vue 利用npm和webpack模块包形式引入Vue.js文件 创建一个Vue实例: 引入CDN文件创建Vue实例对象,HTML文件中添加关联Vue...vue事件和表单 事件处理的语法格式: v-on:事件名,@事件名绑定事件处理函数,可用的事件,两大类分别为鼠标事件和键盘事件。...event表示当前的使用对象 接收事件对象: dada: function(event){ // event表示接收到的事件对象 } 事件委派 提高应用程序的性能:借助事件对象上线一个事件委托机制。...那么什么是事件委派机制呢? 就是借助event事件对象,父元素上绑定事件处理函数,不是子元素上。

4K20

vue 性能监控分析

当解析被阻塞的时候,浏览器会有一个轻量级的HTML或CSS扫描器scanner继续文档中扫描,查找那些将来可能能够用到的资源文件的url,渲染器使用它们之前将其下载下来,并且下载是可以并行进行的,并行的上限一般为...它的精度可以达到1毫秒的千分之一(1秒的百万分之一),这对于衡量的程序的细微差别,提高程序运行速度很有好处,而且还可以获取后台事件的时间进度。...Performance API提供了很多方便测试我们程序性能的接口,他除了一些上古版本,现在的主流浏览器中都能兼容,因此很多优秀的框架也用到了这个API进行测试。...domContentLoadedEventEnd: 1649942786450 // DOM 解析完成后,网页内资源加载开始的时间, DOMContentLoaded 事件抛出前发生 domContentLoadedEventStart...(脚本文件、样式表、图片文件等等)发出一个HTTP请求。

1.9K90

怎样修复 Web 程序中的内存泄漏

但是客户端泄漏内存的可能性很小,因为每次页面之间导航浏览器都会清除内存。) Web 开发文献中没有很好地解决内存泄漏问题的方法。...本文中,我想分享一些我解决 Web 程序中的内存泄漏方面的经验,并提供一些示例来说明如何有效地跟踪它们。...当你点击“获取快照(take snapshot)”按钮,你已经捕获了该网页上特定 JavaScript VM 中的所有活动对象。...但是堆快照工具有几个限制: 如果保存并重新加载快照文件,则所有文件引用都将会丢失到分配对象的位置。例如你不会看到 foo.js 第 22 行的事件监听器的关闭。...还可以通过调用专有的 Chromedriver 命令 :takeHeapSnapshot 创建堆快照文件。但是这也具有上述相同的限制——你可能想要连续获取三个并丢弃前两个。

3.1K30

深入理解浏览器原理

基础:Process和Thread执行程序 启动应用程序时,创建一个进程,并提供”slab”内存,所有应用程序状态保存在该专用内存中,关闭程序时,系统释放内存。...它被分成不同的进程,因为GPU处理来自多个应用程序的请求并将它们绘制同表面中。...视口内部使用栅格部件 - chrome首次发布处理栅格化的方式 用户滚动页面,则移动光栅框架,并通过更多光栅填充缺失的部分 合成是一种将页面的各个部分分层,分别栅格化,并在合成器线程的单独线程中合成为页面的技术...非快速可滚动区域 1) 合成页面,合成器线程标记页面的一个区域,该区域将事件处理程序附加为“非快速可滚动区域”。...事件处理 下面程序中,整个页面都被标记为非快速可滚动区域,合成器线程也必须与主线程通信,并在每次输入事件进入时等待它,最终影响合成器平滑滚动能力。

4.5K31

Vue 【前端面试题】

beforeCreate(创建前) 在数据观测和初始化事件还未开始 created(创建后) 完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来 beforeMount(载入前) 挂载开始之前被调用...: 更多的开发条件限制: 例如服务端渲染只支持 beforCreate 和 created 两个钩子函数,这会导致一些外部扩展库需要特殊处理,才能在服务端渲染应用程序中运行;并且与可以部署在任何静态文件服务器上的完全静态单页面应用程序...SPA 不同,服务端渲染应用程序,需要处于 Node.js server 运行环境; 更多的服务器负载: Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用...; 服务端渲染的缺点: 更多的开发条件限制: 例如服务端渲染只支持 beforCreate 和 created 两个钩子函数,这会导致一些外部扩展库需要特殊处理,才能在服务端渲染应用程序中运行;并且与可以部署在任何静态文件服务器上的完全静态单页面应用程序... 2.x 中,不管反应式数据有多大,都会在启动被观察到。如果你的数据集很大,这可能会在应用启动带来明显的开销。 3.x 中,只观察用于渲染应用程序最初可见部分的数据。 更精确的变更通知。

3.3K21

pwa-之service worker 基本概念

pwa-之service worker 基本概念 pwa-之service worker 离线文件处理 学习service worker 基本概念 本章,将涵盖以下内容 service worker准备工作...我们作为资源引用的是JavaScript文件,CSS文件,图像和一些字体。 这将有助于我们加快加载时间,而不必每次访问同一网站都必须从服务器获取。...你可以写在js文件里面,html文件中引入,但不能在service worker的js中注册。 如何注册 先创建一个html文件 <!...install事件比较适合用来预加载数据和初始化缓存,activate事件适合用来清理旧版本的数据。...事件 Inspect:检查器中打开worker ==即使勾选了Network中的disable cache,service worker依然会生效,如果需要每次都更新,需要勾选Application

1K31

Puppeteer已经取代PhantomJs

爬取SPA(单页应用程序)并生成预渲染的内容(即“ SSR”(服务器端渲染))。 自动执行表单提交,UI测试,键盘输入等。 创建最新的自动化测试环境。...使用最新的JavaScript和浏览器功能,直接在最新版本的Chrome中运行测试。 捕获时间线跟踪 您的网站以帮助诊断性能问题。 测试Chrome扩展程序。...,合适的时间点我们将该事件设置为 true //以下是我们项目触发截图的判断逻辑,如果 renderdone 出现且为 true 那么就截图,如果是 Object,说明页面加载出错了,我们可以捕获该异常进行提示...JS脚本 Puppeteer 最强大的功能是,你可以浏览器里执行任何你想要运行的 javascript 代码,下面是我爬邮箱的收件箱用户列表,发现每次打开收件箱再关掉都会多处一个 iframe...Frame 中执行函数必须获取到对应的 Frame 才能进行相应的处理 以下是登录 188 邮箱,其登录窗口其实是嵌入的一个 iframe,以下代码我们获取 iframe 并进行登录 (async

6.1K10

每天都在用的浏览器,你知道它是如何工作的吗?

基础:Process和Thread执行程序 启动应用程序时,创建一个进程,并提供”slab”内存,所有应用程序状态保存在该专用内存中,关闭程序时,系统释放内存。...它被分成不同的进程,因为GPU处理来自多个应用程序的请求并将它们绘制同表面中。...视口内部使用栅格部件 - chrome首次发布处理栅格化的方式 用户滚动页面,则移动光栅框架,并通过更多光栅填充缺失的部分 合成是一种将页面的各个部分分层,分别栅格化,并在合成器线程的单独线程中合成为页面的技术...非快速可滚动区域 1) 合成页面,合成器线程标记页面的一个区域,该区域将事件处理程序附加为“非快速可滚动区域”。...事件处理 下面程序中,整个页面都被标记为非快速可滚动区域,合成器线程也必须与主线程通信,并在每次输入事件进入时等待它,最终影响合成器平滑滚动能力。

2.2K20

Chrome扩展开发入门体验

---- ****Chrome扩展基本目录结构**** manifest.json 这是一个配置文件,里面记录了扩展的使用范围、作者、版本、其余需要加载文件等内容; icon.png 这个一看便知...面板加载的js脚本文件 popup.css popup面板加载的css样式文件 具体分析manifest.json插件的配置文件 { "name": "Alic", //插件的名称..."notifications", "storage" ] } background background 可以使扩展常驻后台,比较常用的是指定子属性 scripts,表示扩展启动自动创建一个包含所有指定脚本的页面...->扩展程序 注意:将开发者模式选中~~~ The first = 点击加载已解压的扩展程序,并选择扩展程序的目录 完成后会在项目的根目录生成xx.crx以及xx.pem两个文件 The second...background里绑定browserAction的点击事件定义事件响应处理 chrome.browserAction.onClicked.addListener(function(){

1K40

浏览器中本地运行Node.js

我们设想了一个比本地环境更快,更安全和一致的高级开发环境,以实现无缝的代码协作而无需设置本地环境 技术名为:WebContainers WebContainers允许您创建完整的Node.js环境,这些环境可以毫秒内启动...与Chrome DevTools的无缝集成可实现本机后端调试,无需安装或扩展。 默认为安全。所有代码执行都发生在浏览器的安全沙箱中,而不是远程VM或本地二进制文件上。...少,并且可以保护您的Web服务器免受本地主机抓取攻击 毫秒级启动时间 每个页面加载都有一个全新的环境 再见rm -rf node_modules!...WebContainer的内置npm客户端是如此之快,以至于它在每次页面加载都运行全新的安装,从而确保您每次都能获得一个干净的环境。...如果您的环境确实出现问题,则可以像处理其他任何Web应用程序一样恢复到干净的状态:单击“刷新”按钮 借助StackBlitz,无论您是火车上,飞机上还是雨中后座,都可以没有互联网连接的情况下继续工作

3.4K10

美团前端经典vue面试题总结_2023-03-01

创建一个emit.js文件,用于vue事件机制的管理。webpack:模块加载和vue-cli工程打包器。...事件的销毁Vue 组件销毁,会自动清理它与其它实例的连接,解绑它的全部指令及事件监听器,但是仅限于组件本身的事件。...路由懒加载Vue 是单页面应用,可能会有很多的路由引入 ,这样使用 webpcak 打包后的文件很大,当进入首页加载的资源过多,页面会出现白屏的情况,不利于用户体验。...contact 等)的 SEO,那么你可能需要预渲染,构建简单地生成针对特定路由的静态 HTML 文件。...优化 SourceMap我们项目进行打包后,会将开发中的多个文件代码打包到一个文件中,并且经过压缩、去掉多余的空格、babel编译化后,最终将编译得到的代码会用于线上环境,那么这样处理后的代码和源代码会有很大的差别

52310
领券