欢迎光临散文网 会员登陆 & 注册

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

2023-07-20 20:26 作者:bili_99246943970  | 我要投稿

路由懒加载是干什么的?

路由中通常会定义很多不同的页面,一般放在js文件。但是页面这么多放在一个js文件中,必然会造成这个页面非常大,如果一次性从服务器请求下来这个页面,可能需要花费一定时间,甚至用户电脑上出现短暂空白情况,为避免这种情况,使用路由懒加载。

什么是具名插槽与匿名插槽?

具名插槽:在子组件中定义插槽时,给对应的插槽分别起个名字,方便后边插入父组件将内容根据name来填充对应的内容。

匿名插槽:又名默认插槽,当slot没有指定name属性值的时候一个默认显示的插槽,一个组件内只有有一个匿名插槽。

Vue和React中diff算法区别?

vue的diff算法:vue的diff算法在对新老虚拟daom进行对比时,是从节点的两侧向中间对比;如果节点的key值与元素类型相同,属性值不同,就会认为是不同节点,就会删除重建。

react的diff算法:react的diff算法在对新老虚拟dom进行对比是,是从节点左侧开始对比,就好比将新老虚拟dom放入两个栈中,一对多依次对比;如果节点的key值与元素类型相同,属性值不同,react会认为是同类型节点,只是修改节点属性。

axios是什么?

 Axios是一个基于promise的HTTP库,类似于jQuery的ajax,用于http请求。可以应用于浏览器端和node.js,既可以用于客户端,也可以用于node.js编写的服务端。

为什么要设置key值,可以index吗?为什么不能?

key值的作用

元素key属性的作用是用于判断元素是新创建的还是被移动的元素,从而减少不必要的Diff。

一旦组件加上了key值,在渲染时对该组件的身份进行校验,首先校验新旧组件的key值是不是一致,不一致的话,该组件直接销毁,然后在新建该组件;如果一致,则比较组件的属性是否发生变化,如果发生变化,则采用diff算法进行对比,然后得出差异对象,如果属性没发生变化,则认为该组件不需要改变。

为什么最好不要使用index作为key?

若数组的内容只是作为纯展示,而不涉及到数组的动态变更,其实是可以使用index作为key的。

如果涉及到数组的动态变更,例如数组新增元素、删除元素或者重新排序等,这时index作为key会导致展示错误的数据。

什么时候使用vuex?

当你法很好进行数据管理的时候,你才需要用Vuex

具体来说的话,大体来说分为两类:

1.当一个组件需要多次派发事件时

原因很简单,如果它多次派发事件,必然有其它组件进行接收并调用。为了以后的方便维护,就需要用到vuex了,尤其是中大型项目。

2.跨组件共享数据、跨页面共享数据

简单来说,共享数据,只要看到这种字眼就要想到vuex了。需要共享的数据,就需要保存到vuex中。

什么是Vue.nextTick()?

nextTick 是 Vue.js 中的一个方法,用于在 DOM 更新之后执行一段代码。它是 Vue.js 中的异步更新机制之一,用于在下一次 DOM 更新周期之后执行回调函数,确保 DOM 更新完毕后再执行代码,以避免出现操作未更新完的 DOM 元素的问题。

nextTick 可以在 Vue.js 的组件内部使用,用于在 DOM 更新周期之后执行一些操作,例如在修改数据后立即获取更新后的 DOM 元素的属性或进行其他 DOM 操作。

作用:

nextTick 主要用于以下场景:

当你修改了 Vue.js 实例中的数据后,想要立即获取更新后的 DOM 元素的属性或进行其他 DOM 操作。

当你想要在 DOM 更新之后执行一段代码,例如在 DOM 更新后执行一些异步操作。

原理:

Vue.js 通过异步更新机制来实现性能优化,将多次数据变更合并为一次 DOM 更新,从而提高性能。nextTick 利用了 Vue.js 的异步更新机制,在下一次 DOM 更新周期之后执行回调函数,以确保 DOM 更新完毕后再执行代码。

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)的评论 (共 条)

分享到微博请遵守国家法律