- 博客(14)
- 收藏
- 关注
原创 企业面试问题
Fiber 通过虚拟 DOM 的比较和更新算法,将 UI 更新过程拆分为多个阶段,并根据优先级和时间片进行调度,以实现更精确的渲染控制。:Fiber 使用了任务优先级和调度器的概念,可以根据任务的优先级和剩余时间片进行任务调度,保证高优先级任务优先执行,从而提升用户体验。高阶组件(HOC)是一种用于组件复用的高阶技巧,它本质上是一个函数,接收一个组件作为参数,返回一个新的组件。:Hooks 是函数式组件的扩展,以函数的形式编写,而类组件则是以类的形式编写。
2024-04-17 11:28:02
260
1
原创 本地图片预览的方式,参数归一化
公式为 x* = (x - min) / (max - min),其中 max 是样本数据的最大值,min 是样本数据的最小值。:也称为标准差标准化,它将数据按其均值和标准差进行归一化,使归一化后的数据符合标准正态分布,即均值为0,标准差为1。一个FileReader上面的实例方法,读取指定的File对象,读取完成的时候触发回调,返回URL格式的字符串(base64)一个静态方法,创建一个DOMString,返回一个URL,URL和document绑定,表示指定的File对象。
2024-04-17 11:27:16
863
1
原创 git首次拉取
4.拉取成功后,进入文件夹,再次打开git命令输入git switch dev ---成功切换到dev分支。3.git clone 链接 ----拉取代码。2.git init ----初始化。
2024-02-19 14:34:21
635
1
原创 Vue五道题。
命令式编程 Imperative Programming,命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现,计算机会严格遵循你的指令,而不理会最后的结果是不是你所想要的。这需要考虑到v-for与v-if的优先级顺序问题,当它们处于同一节点,v-for的优先级比v-if更高,这意味着 v-if将分别重复运行于每个 v-for循环中。利用v-text、v-html代替插值表达式,v-text用于单个标签、v-html用于带有标签的处理。声明式编程(没有DOM操作)
2023-12-21 15:33:47
339
原创 vue2的响应式原理?vue3中的响应式原理?
在vue对象创建时,vue会调用observe方法,将data对象转成响应式对象,observe内部会遍历data对象的所有属性,为每个属性设置getter与setter,data对象中的没个属性都会创建一个dep(依赖)对象,用于收集依赖和通知更新。当修改响应式对象的属性时,会触发属性的setter,setter内部会通知该属性对应的dep,调用dep的notify方法,notify方法会遍历该属性的所有watcher,然后调用watcher中的update方法。
2023-12-19 18:45:02
357
1
原创 watch与watchEffect的区别?
watch在响应数据初始化时是不会执行回调函数的,watchEffect在响应式初始化时就会立即执行回调函数。watch和watchEffect都能监听响应式数据的变化,不同的事他们监听数据变化的方式不同。watch会明确监听某一个响应数据,而watchEffect则是隐式的监听回调函数中响应数据。watch与watchEffect的区别?
2023-12-19 18:34:51
390
1
原创 vuex的实现原理
getters的实现借助了vue中的computed特性,遍历getters中的所有key,并在computed中通过key声明一个无参函数,并返回一个带有state参数的函数(这个函数就是定义在getters中的函数),然后通过Object.defineProperty方法创建一个getters对象。通过new去初始化一个vue实例,利用vue中的响应式data,在data中定义一个$$state(加$$属性不会被代理)属性,值是要传递的state对象,然后通过访问器(get)的方式去访问state。
2023-12-19 18:31:33
352
1
原创 vueRouter的实现原理
实现一个match方法,循环routes,判断path属性和current属性是否匹配,如果能够匹配上就将当前匹配到router添加到数组match中,继续判断当前router是否存在chilfren,如果存在就递归查找所有route,吧path属性和current匹配到route添加到matched数组。实现router-link组件,router-link实际上就是a标签,需要将a标签的href属性设置成使用<router-link></router-link>组件时外部传递的to属性。
2023-12-19 18:21:16
354
1
原创 面试官常问的React面试题
在react中每个组件的state是由自身进行管理,包括组件定义自身的state、组件之间的通信通过props传递、使用Context实现数据共享等,如果让每个组件都存储自身相关的状态,理论上来讲不会影响应用的运行,但在开发及后期我们将比较难以维护,所以我们可以把数据进行集中式的管理,redux就是一个实现上述集中管理的容器的工具,redux并不是只应用在react中,还与其他界面库一起使用,如Vue。
2023-12-06 16:07:48
430
1
原创 Vue面试题
6-模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。“Vue实现了一套内容分发的API,这套API基于当前的Web Components规范草案,将slot元素作为承载分发内容的接口”。1.查找浏览器缓存:如果查找到缓存中有我们URL对应的文件,则判断是否命中强缓存,如果命中直接读取使用即可,如果强缓存没有命中,如果父组件在使用到一个复用组件的时候,获取这个组件在不同的地方有少量的更改,如果去重写组件是一件不明智的事情。
2023-12-05 09:36:36
307
原创 Vue基础面试题
diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DOM结构进行重绘与回流,而diff算法能够使得操作过程中只更新修改的那部分DOM结构而不更新整个DOM,这样能够最小化操作DOM结构,能够最大程度上减少浏览器重绘与回流的规模。用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。
2023-12-05 09:33:15
317
原创 Vue组件通信
插槽就是子组件中的提供给父组件使用的一个占位符,用 表示,父组件可以在这个占位符中填充任何模。父组件通过绑定的自定义属性值来接收子组件的值。可以让父组件对子组件的内容进行加工处理。只需在子组件里面调用组件,用来占位。具有名字的插槽就是具名插槽。在父组件里面,去定义内容。指令来绑定一个自定义属性。模板的作用是可以将两个。标签绑定要传递的数据。
2023-12-05 09:16:30
1145
原创 前端常见的面试题
在 Redux 中,为了避免定义的 action type 常量重复,可以采用以下几种方式:使用字符串常量:定义 action type 时使用字符串常量,在不同的模块或文件中使用不同的命名空间来确保唯一性。使用枚举类型:使用 TypeScript 的枚举类型来定义 action type,枚举成员的名称是唯一的使用工具库:可以使用一些辅助工具库来帮助管理和生成唯一的 action type,例如redux-act等。
2023-12-04 09:31:24
1035
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人