![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 88
nuise_
这个作者很懒,什么都没留下…
展开
-
JavaScript理解模块化的作用域 | 作用域 - 执行上下文 - 模块化
每个js文件都是一个单独的模块,每个模块在编译包装后形成函数,所以每个模块内容都在一个函数作用域里。aaa执行时,现在当前函数作用域找a(l理解为aaa.a),没找到。这种静态语法,在编译过程中确定了导入和导出的关系,所以更方便去查找依赖,更方便去 tree shaking。,每当调用一个函数时,都会创建一个新的函数执行上下文,函数执行上下文在函数执行结束后被销毁。模块的概念:一个模块就是一个独立的文件,该文件内部的所有变量,外部无法获取。3.执行函数:在函数上下文中,执行函数体内的代码。原创 2024-01-22 16:09:25 · 964 阅读 · 0 评论 -
CSS 布局-垂直居中-盒模型
文档流是元素中文档流向,从上往下分成一行行的,块级元素从上至下、行内元素在每行中从左到右依次排放。块元素(block)独占一行,设置宽高生效,margin和padding的上下左右均对其有效常见块元素div、p、h1行内元素不独占一行,设置宽高不生效,margin上下无效常见行内元素span,img是行内元素,但具有行内块的属性,可以自由设置宽高。div和p的使用场景一般来说块级元素可以包含行内元素和块级元素,但是h1~h6、p内部只能包含行内元素,不能包含块级元素语义上,div。原创 2022-10-03 21:32:54 · 905 阅读 · 0 评论 -
前端性能优化:页面加载速度慢怎么办?
当页面有一些复杂动画时,动画很卡的时候,可以将动画元素生成独立的图层,强制开启GPU加速,跳过布局和绘制阶段,新建图层交给GPU渲染。插件,该插件会对当前的页面进行性能分析,并提出详细的文档和建议,解释为什么是这个分数,最后指出页面存在的问题,为进一步改进给出方案。总阻塞时间:阻塞主线程并影响页面可用性的时间,比如异步任务过长导致阻塞主线程渲染(JS线程和渲染线程冲突)渲染线程和JS引擎是互斥的,所以对于一些计算密集型或高延迟的任务可能会阻塞页面的渲染。基于ES6的静态模块结构,删除无用代码。原创 2022-09-20 21:46:26 · 5271 阅读 · 0 评论 -
异步编程解决方案 Generator生成器函数、iterator迭代器、async/await、Promise
1.addTask(1000, ‘1’)执行到const res = await promiseCreator()的时候,交出执行权,执行下一步。try catch是同步代码在执行栈中,异步任务会被推进队列中,根据事件循环机制,会先将执行栈中的代码执行完毕再去执行队列中的任务。任务调度器-控制任务的执行,当资源不足时将任务加入等待队列,当资源足够时,将等待队列中的任务取出执行。的generator函数,是generator函数的语法糖,当函数执行遇到。)也会调用默认的 Iterator 接口。.......原创 2022-08-04 00:16:49 · 614 阅读 · 0 评论 -
setTimeout 、setInterval、requestAnimationFrame
如果事件处理程序花了300ms多一点时间完成,同时定时器代码也花了差不多的时间,就会同时出现跳过某间隔的情况。这样做的好处 ①在前一个定时器代码执行完之前,不会向队列插入新的定时器代码,确保不会有任何缺失的间隔。② 它可以保证在下一次定时器代码执行之前,至少要等待指定的间隔,避免了连续的运行。显示器的刷新频率是60Hz,浏览器也会尽量保持60Hz的刷新率运行,也就是16.7ms刷新一帧所以(60次/s)在每次屏幕刷新时,判断当前帧是否还有多余的时间(上述6个步骤执行完后),如果有,则会调用。........原创 2022-08-02 22:09:01 · 412 阅读 · 0 评论 -
JavaScript 线程机制与事件循环机制
是进程内的一个独立执行单元,一个进程中可以有多个线程,多个线程共享进程的数据。进程中的任意一线程执行出错,都会导致整个进程的崩溃。启动一个程序时,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这个运行环境叫进程。ring3仅能使用常规CPU指令集,不能使用操作硬件资源的CPU指令集,比如IO读写等。JS是单线程运行的,但使用H5中的WebWorkers可以多线程运行。ring0可以使用所有CPU指令集,ring0被叫做内核态,完全在。.........原创 2022-03-08 20:26:26 · 947 阅读 · 0 评论 -
JavaScript 面试题总结
区别letconstvar重复声明不能重复声明,会报SyntaxError错const定义常量,值不能修改的变量叫做常量,一定要赋初始值,因为不能修改。可以重复声明变量提升不存在不存在存在块级作用域拥有拥有不拥有会不会污染全局变量(挂载在window上)不会不会会补充如果常量是个数组或对象,对其内部元素修改,不算对常量的修改,不会报错。因为常量的值报错的是地址,地址并没有改变。..........................................原创 2022-07-28 23:31:01 · 1215 阅读 · 0 评论 -
DOM事件流 事件冒泡-事件捕获-事件委托
绑定事件监听时,第三个参数可以设置事件在哪个阶段执行,默认是事件冒泡阶段。DOM事件流的三个阶段是捕获阶段->目标阶段->冒泡阶段。目的解决页面中的事件流(事件发生顺序)的问题。原创 2022-07-26 00:02:08 · 148 阅读 · 0 评论 -
计算机网络知识点 HTTP、HTTPS、TCP和UDP、webSocket、SSE
假设采用两次握手,那么服务端发出确认报文,表示连接已建立,但客户端并没有发出确认建立的连接,也不会向服务端发送任何数据,服务端因连接占用导致资源浪费。但是关闭连接时,当Server端收到FIN报文时,可能服务器还有数据需要发送,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。第二次握手服务端收到FIN报文之后,发送ACK确认标志位=1,ack确认号为u+1的响应报文,表明已经收到客户端的报文了,但是可能服务器还有数据传输,所以服务端处于CLOSE_WAIT状态。.......原创 2022-07-25 21:23:43 · 1698 阅读 · 0 评论 -
axios取消请求原理、拦截器原理
axios是什么?基于promise的异步ajax请求库axios有什么新特点?支持请求/响应拦截器★支持请求取消.浏览器端(创建ajax请求)/node端(创建一般的HTTP请求)都可以使用请求/响应数据转换-->使用时写的是对象,axios自动转换成了json。接受时axios也自动将json转换为了对象。.........原创 2022-07-25 21:20:30 · 1980 阅读 · 0 评论 -
HTTP和HTTPS HTTPS为什么更安全?
摘要算法可以理解成一种特殊的压缩算法,它能够把任意长度的数据压缩成固定长度、且唯一的摘要字符串,就好像是给这段数据生成了一个数字“指纹”。摘要算法保证了数字摘要和原文是完全等价的。所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性。.........原创 2022-07-24 22:49:25 · 1347 阅读 · 0 评论 -
vuex插件原理 vue.use原理
1.什么是vuex?vuex是在vue中实现集中式数据管理的一个插件,对vue应用中多个组件的共享状态进行集中的管理,适合任意组件间通信vuex的常用配置属性state用于存储数据状态actions进行业务逻辑处理或者数据请求mutations用于操作数据state,更改store中状态的唯一方法。......原创 2022-07-23 17:59:25 · 612 阅读 · 0 评论 -
vue-router 相关面试题
由于不能将组件真正的卸载,所以keep-alive是将组件从原容器移动到另外一个假容器中,实现假卸载。$route是当前路由对象,表示本组件的路由规则,每一个路由都会有一个route对象,是一个局部对象。params参数传递的时候,传递了设置占位符接收的参数,地址栏不会显示并且刷新会丢失。在单页面应用中,不同组件之间的切换需要通过前端路由来实现。2.工作过程当浏览器的路径改变时,对应的组件就会显示。可以实现组件缓存,当组件切换时不会对当前组件进行卸载。7.在被激活的组件里调用。进入组件前的调用的顺序。...原创 2022-07-20 16:42:51 · 1662 阅读 · 1 评论 -
vue computed和watch
计算属性的Watcher会将自己的dirty属性设置为true,组件的Watcher也会收到通知,从而执行render函数进行重新渲染操作,重新读取计算属性的值,此时计算属性的Wather已经把自己的dirty属性设置为true,所以会重新计算计算属性的值。计算属性的结果会被缓存,初始化时调用生成初始值,只有计算所依赖的数据发生变化才会重新计算。当计算属性中的内容发生变化后,计算属性的Watcher与组件的Watcher都会得到通知。计算属性根据已有的属性生成新的属性。遍历watch对象的每一个属性,...原创 2022-07-18 23:33:12 · 458 阅读 · 0 评论 -
前端安全 XSS跨站脚本攻击-CSRF跨站请求伪造攻击
XSS(Cross-Site Scripting)跨站脚本攻击是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie 等,进而危害数据安全。XSS攻击的本质是:恶意代码未经过滤,浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。存储型XSS的攻击步骤比较常见的一个场景是攻击者在社区或论坛上写下一篇包含恶意 JavaScript 代码的文章或评论,文章或评论发表后,所有访问该文章或评论的用户,都会在他们的浏览器中执行这段原创 2022-07-06 16:47:35 · 1617 阅读 · 0 评论 -
浏览器本地缓存 localstorage/sessionstorage/cookie - 身份认证 cookie/session/token
HTTP 是无状态的协议,每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 cookie 或者 session 去实现。cookie的特点cookie的主要属性原生js操作cookiecookie的使用1.浏览器首次向服务器发起请求。2.服务器响应时,会发送 Set-Cookie原创 2022-07-06 16:35:59 · 1973 阅读 · 0 评论 -
JavaScript 垃圾回收机制
基本类型存放在栈中,引用类型存放在堆中JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。所有垃圾回收器都需要做的任务一般来说没有被引用的对象就是垃圾,就是要被清除。从根开始遍历对象。例外如果几个对象引用形成一个环,互相引用,但根访问不到它们,这几个对象也是垃圾,也要被清除。根对象有一组基本的固有可达值,由于显而易见的原因无法删除存活对象如果引用或引用链可以从根访问任何其他值,则认为该值是可访问的将堆分为新生代和老生代。原创 2022-07-04 16:20:48 · 953 阅读 · 0 评论 -
JS实现带并发的异步任务调度器-promise
实现一个具有并发数量限制的异步任务调度器,可以规定最大同时运行的任务。JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善下面代码的Scheduler类,使以下程序能够正常输出:整个的完整执行流程:起始1、2两个任务开始执行500ms时,2任务执行完毕,输出2,任务3开始执行800ms时,3任务执行完毕,输出3,任务4开始执行1000ms时,1任务执行完毕,输出1,此时只剩下4任务在执行1200ms时,4任务执行完毕,输出4任务调度器-控制任务的执行,当资源不足原创 2022-07-01 17:35:30 · 2495 阅读 · 0 评论 -
vue的模板编译原理
vue提供了模板语法,允许我们声明式地描述状态和DOM之间的绑定关系,比如。模板编译指的是模板编译成虚拟DOM的过程,vue会将模板编译成虚拟DOM渲染函数。模板编译的主要目的是生成渲染函数,渲染函数的作用是每次执行时,会根据最新状态生成新的vnode解析器:将模板解析为AST(Abstract Syntax Tree 抽象语法树)优化器:遍历AST标记静态节点,因为静态节点不可变,不需要为打上标签的静态节点创建新的虚拟节点,直接克隆已有的虚拟节点。代码生成器:使用AST生成渲染函数。将AST转换成渲原创 2022-06-27 13:35:27 · 2259 阅读 · 2 评论 -
TS 常考知识点记录
TypeScript是JavaScript的超集,在JavaScript的基础上添加了很多新特性。主要优势1.在编译阶段就可以发现大部分错误,更利于调试和维护。2.TypeScript 是添加了类型系统的 JavaScript,适用于任何规模的项目。再从TypeScript新增的特性进行回答......原创 2022-06-25 17:25:48 · 270 阅读 · 0 评论 -
JavaScript 数据结构
Object.keys()方法会返回一个由给定对象的自身可枚举属性组成的数组如果Object.keys()返回的迭代器对象长度为0,说明该对象是空对象。还需要判断是否为对象的构造函数,在JS中有9个内置构造函数,调用该函数返回的结果都为true。还需要考虑边界情况比如null或者undefined修改版本如果属性是Symbol对象,这个函数会判断错误可以通过方法判断是否存在Symbol对象如果不可枚举对象也需要判断,那么可以将换成Reflect.ownKeys() 优先使用 方法返回一个由目原创 2022-06-25 16:27:18 · 591 阅读 · 0 评论 -
vue 生命周期
什么是vue生命周期函数?vue在关键时刻帮我们调用的一些特殊名称的函数,生命周期就是用来描述一个组件从引入到退出的全过程。挂载阶段:父组件 beforeMount -> 子组件 created -> 子组件 mounted -> 父组件 mounted更新阶段:父组件 beforeUpdate -> 子组件 beforeUpdate -> 子组件 updated -> 父组件 updated销毁阶段:父组件 beforeDestroy -> 子组件 beforeDestroy -> 子组件 destr原创 2022-06-25 11:53:09 · 309 阅读 · 0 评论 -
TCP和UDP TCP如何保证可靠数据传输的-TCP和UDP的区别
TCP 的可靠数据传输服务确保数据在传输中是完整且按序的需要解决的问题TCP协议面向字节流,为每个字节都编上序号。在发送时多个字节组成报文段发送。序号seq字段 指的是一个报文段第一个子节的序号确认号ack字段 指的是希望收到的下一个报文段的第一个字节的序号TCP默认使用累计确认只会返回应该按序接受的报文段第一个字节的序号累计确认可以让我们同时对多个接受的报文进行一次确认超时+重传发送方发送一个未被确认的数据包后就启动一个计时器,如果在指定时间内没有收到ACK, 发送方可以重传该报文存在问原创 2022-06-23 22:59:45 · 1213 阅读 · 0 评论 -
vue v-if和v-show的区别、v-if-for优先级的问题、scoped及css样式穿透
学习笔记:https://blog.csdn.net/qq_41370833/article/details/123745232如果一个值依赖多个属性(多对一),用computed肯定是更加方便的。如果一个值变化后会引起一系列操作,或者一个值变化会引起一系列值的变化(一对多),用watch更加方便一些。.................................原创 2022-06-22 20:38:19 · 405 阅读 · 0 评论 -
HTTP 1.0 2.0 3.0
请求URL + Host = 请求URLURL 代表着是统一资源定位符(Uniform Resource Locator)表示某个资源在 Web 上的地址。URI 代表着统一资源标识符(Uniform Resource Identifier),用于标识某一互联网资源名称 如图中HTTP1.0需要满足以下两个需求,引入了请求头和响应头1.支持多种类型的文件下载,传输HTML、JavaScript、CSS、图片、音频、视频等不同类型的文件。2.支持其他类型编码的文件,默认ASCII编码传输还依据当时实际的原创 2022-06-21 17:10:49 · 619 阅读 · 0 评论 -
DOM渲染与优化 - CSS、JS、DOM解析和渲染阻塞问题
知识点对于浏览器说,页面加载主要有两个事件浏览器向服务器请求到了 HTML 文档后便开始解析,产物是 DOM(文档对象模型),到这里 HTML 文档就被加载和解析完成了。HTML文件的解析就是生成DOM树的过程HTML中的三类script渲染进程在解析 HTML 的时候,如果遇到一个没有任何属性的 标签,就会暂停解析,先发送网络请求获取该 JS 脚本的代码内容,然后让 JS 引擎执行该代码,当代码执行完成后再切换回渲染引擎继续渲染流程。async、defer属性的js脚本,渲染引擎遇到这一行命令,原创 2023-09-08 14:17:40 · 4351 阅读 · 3 评论 -
从输入URL到页面展示这中间发生了什么
仅仅打开了1个页面,为什么有4个进程?因为打开1个页面至少需要1个网络进程、1个浏览器进程、1个GPU进程以及1个渲染进程,共4个进程是一个程序运行的实例,操作系统会为进程创建独立的内存,用来存放运行所需要的代码和数据线程是进程的组成部分,每个进程可以有多个线程其中至少一个主线程,这些线程由所属的进程进行启动和管理。进程和线程之间关系的特点:浏览器接收到输入的URL后,先对URL解析,把我们请求需要的协议、域名、端口、路径这些信息解析提取出来。URL结构:,判断用户输入的是 还是?网络进程会查找本地原创 2022-06-17 22:20:16 · 2435 阅读 · 0 评论 -
vue中的路由懒加载
懒加载本质是延迟加载或按需加载,即在需要的时候的时候进行加载。首页不用设置懒加载,一个页面加载过后再次访问不会重复加载。为什么要进行路由懒加载路由懒加载所做的事情语法:ES import 常用用户访问组件时,该箭头函数被执行webpack:import动态导入语法能将该文件单独打包语法:...原创 2022-06-15 16:27:51 · 1829 阅读 · 0 评论 -
性能优化:图片懒加载
为什么需要图片懒加载?我们请求一个带有n张图片的html文件实际上会发送n+1次请求,因为在浏览器解析html的时候遇到了,就会请求后面的内容。如果资源文件很大时,容易阻塞渲染引起卡顿。或者就算加载完毕,用户也不一定会滚动屏幕浏览。所以在首次打开网站时,应尽量只加载首屏内容所包含的资源。延迟加载的处理过程标签的属性代表一个CDN上的图片资源。首屏被展示的src属性值为URL,src属性被赋予一个URL后,会立刻向该URL发起资源请求。还未加载的图片的src属性值均使用了相同的Base64,Base6原创 2022-06-15 15:34:21 · 1839 阅读 · 1 评论 -
排序算法 快排-冒泡-归并排序-堆排序-选择排序-V8引擎sort排序的原理
思路通过一趟排序,将排序的数组分隔成了两个部分,基准元素也找到最终的位置。一个n个元素,那么就需要n-1趟。采用递归的思想实现1.递归的参数、返回值和停止递归的条件一般采用左右边界的方法来对数组进行区间划分。所以我们需要知道数组、左右边界。我们通过在数组中交换元素进行排序,所以修改了数组本身的值,不需要返回值。递归的终止条件是子表只有一个元素时,停止。2.本层递归逻辑寻找基准值的位置,根据基准值分为左右两个部分,左右那部分继续排序优化:随机基准值的快排基本快排的问题:不适合本身有序的数组原创 2022-06-14 19:17:28 · 428 阅读 · 0 评论 -
npm run xx 的执行流程
的这个xxx是在中配置的。package.json中的scripts中的key为xxx,value为实际的命令。npm run xxx的时候,首先会去项目的package.json文件里找scripts 里找对应的xxx,然后执行 xxx的命令,例如启动vue项目 实际上执行了vue-cli 2.0vue-cli 3.0为什么不直接执行而要执行 呢因为操作系统中没有指令,直接执行会报错。为什么执行的时候可以成功在安装依赖的时候,会在目录中创建几个为名的可执行文件。bin目录下的文件表示软连接。原创 2022-06-13 22:41:11 · 1484 阅读 · 0 评论 -
NextTick 原理分析
为什么数据修改之后,没有立刻渲染视图?在Vue.js中,当状态发生变化时,watcher会得到通知,触发虚拟DOM的渲染流程,watcher触发渲染这个操作是异步的。更新DOM是通过使用注册到微任务中。异步的原因:为了减少性能消耗数据变化后,组件内的所有状态变化都会通知到同一个watcher,然后虚拟DOM会对整个组件进行Diff并更改DOM。假设在同一轮事件循环中有多个数据发生了变化,那么组件的watcher会收到多份通知,进行多次渲染。为了减少性能消耗,我们可以等所有状态修改完毕后,一次性将整个组件原创 2022-06-13 22:00:03 · 1053 阅读 · 0 评论 -
Vue中的Diff算法 patch函数-简单Diff算法-双端Diff算法-快速Diff算法-当数据发生改变,视图如何更新?
什么是DIff算法当新旧vnode的子节点都是一组节点时,为了以最小的性能开销完成更新操作,比较新旧的同层节点。用于比较的算法叫作Diff算法。Diff算法的分类DOM-diff的过程Diff算法的特点当数据发生改变,视图如何更新?当数据改变时,会触发,并且通过去通知所有订阅者,订阅者们就会调用方法,给真实DOM打补丁,更新相应的视图。只有三种类型的节点会被创建并插入到DOM中patch方法的作用1.对比两个vnode之间的差异2.修改DOM节点,创建新增的节点、删除已经废弃的节点、修改需要更新原创 2022-06-09 22:20:15 · 3288 阅读 · 0 评论 -
JS常见代码题 数组去重-自定义new-节流和防抖-深拷贝-instanceof-url参数提取-千位分隔符-数组转树形结构-数组扁平化-函数柯里化
方法1: 利用forEach()和indexOf()说明: 本质是双重遍历, 效率差些思路1:遍历数组,建立新数组,利用indexOf判断是否存在于新数组,不存在则push,最后返回新数组。思路2:数组下标判断法, 遍历数组,利用indexOf判断元素的值是否与当前索引相等,如相等则加入方法2: 利用forEach() + 对象容器说明: 只需一重遍历, 效率高些思路: 遍历数组,将数组值保存成object对象的属性,判断数组值是否已经保存在object中,未保存则push到新数组并用object[原创 2022-06-08 10:19:18 · 416 阅读 · 0 评论 -
渲染优化:重绘(Repaint)和回流(Reflow)
页面布局也叫作重绘(Repaint)和回流(Reflow)在HTML中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流与重绘.回流必定会发生重绘,重绘不一定会引发回流。回流浏览器优化机制由于每次重排都会造成额外的计算消耗,因此大多数浏览器都会通过队列化修改并批量执行来优化重排过程。浏览器会将修改操作放入到队列里,直到过了一段时间或者操作达到了一个阈值,才清空队列当你获取布局信息的操作的时候,会强制队列刷新,也就是上面最后一个点会触发回流的原因。因此浏览器不得不清空队列,触发回流重绘来返回正确原创 2022-06-07 22:12:23 · 303 阅读 · 0 评论 -
浏览器缓存 HTTP缓存-CDN缓存-localstorage/sessionstorage/cookie
缓存大致分为两类浏览器缓存缓存的作用:降低资源的重复加载提高网页的整体加载速度。强制缓存可以通过两种响应头实现 浏览器收到带有此字段的响应体后进行缓存,Expires 的字段值控制缓存失效日期时间戳发送相同的资源请求时,会对比expires和当前的时间戳,如果没有过期,直接使用缓存,返回的 。缓存过期了才允许重新向服务器发起请求: 控制响应资源的有效期,表示响应资源在被请求到后的30s内有效,可以避免服务端和客户端时间戳不同步而造成的问题。Expires字段是HTTP1.0中的字段, 对本地时原创 2022-06-07 20:59:58 · 882 阅读 · 0 评论 -
实现圣杯布局与双飞翼布局 原始实现-flex实现-grid实现
本质:三列布局,左右两边固定,中间自适应且优先加载优先加载:主区域标签写在最前面float + margin负值+relative/添加盒子前期准备1.三个区域的盒子向左浮动:三栏在一行显示问题:出现高度塌陷原因:父元素的高度默认被子元素撑开。当子元素浮动后,完全脱离文档流,子元素将无法撑起父元素的高度,导致父元素的高度丢失。父元素高度丢失后,其下的元素会自动上移,影响布局。解决办法:清除浮动清除浮动是指该元素恢复浮动元素没有浮动之前的位置给受影响的盒子添加clear属性,clear元原创 2022-06-04 21:52:29 · 857 阅读 · 0 评论 -
vue2 组件传值的方式 v-model的原理和实现
文章目录vue2 组件传值的方式父组件给子组件传值方式1:props方式2:插槽子组件给父组件传值方式3:组件的自定义事件方式4:父组件给子组件传递函数 子组件调用函数传参 props方式5:全局事件总线 全能vue2 组件传值的方式props通过一般属性实现父向子通信通过函数属性实现子向父通信父组件给子组件传值方式1:props通过一般属性实现父向子通信通过函数属性实现子向父通信 – 方式4父组件通过属性传值<Student name="李四"/>子组件通原创 2022-05-19 22:57:28 · 6155 阅读 · 0 评论 -
webpack 面试题整理
文章目录webpack 面试题整理谈谈你对Webpack的理解Webpack的打包过程/打包原理/构建流程?Webpack中loader的作用/ loader是什么?常见的loader有哪些?Plugin有什么作用?/Plugin是什么常见的Plugin有哪些Webpack 插件的执行顺序(加载机制)?Webpack中Loader和Plugin的区别Webpack 做过哪些优化手段?有哪些优化手段?tree-shaking 删除没有使用的代码 优化前端性能/提高构建速度使用tree-shaking需要注意什原创 2022-05-15 21:51:47 · 29668 阅读 · 1 评论 -
浏览器的跨域是什么?
文章目录每日一题: 浏览器的跨域是什么?解决方案是什么?ajax请求跨域问题每日一题: 浏览器的跨域是什么?解决方案是什么?ajax请求跨域问题同源策略:两个 URL 的协议、域名和端口都相同跨域问题的描述当浏览器向服务器请求数据,服务器返回数据给浏览器后,浏览器发现跨域(不是同源),不将数据给客户端............原创 2022-05-10 23:26:20 · 418 阅读 · 0 评论