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

我的react面试题笔记整理(附答案)

componentDidCatch,当有错误发生时,可以友好地展示 fallback 组件; 可以捕捉到它的子元素(包括嵌套子元素)抛出的异常; 可以复用错误组件。...是一个函数用于处理逻辑array 控制useMemo重新执⾏行的数组,array改变时才会 重新执行useMemo不传数组,每次更新都会重新计算空数组,只会计算一次依赖对应的值,当对应的值发生变化时,才会重新计算...却只显示了 Home 组件。...当 DOM 树很大时,遍历两棵树进行各种比对还是相当耗性能的,特别是在顶层 setState 一个微小的修改,默认会去遍历整棵树。...都使用了Virtual DOM(虚拟DOM)提高重绘性能都有props的概念,允许组件间的数据传递都鼓励组件化应用,将应用分拆成一个个功能明确的模块,提高复用性不同之处:1)数据流Vue默认支持数据双向绑定

1.2K20

前端工程师的20道react面试题自检

给组件添加ref时候,尽量不要使用匿名函数,因为当组件更新的时候,匿名函数会被当做新的prop处理,让ref属性接受到新函数的时候,react内部会先清空ref,也就是会以null为回调参数先执行一次ref...react设计之初是主要负责UI层的渲染,虽然每个组件有自己的state,state表示组件的状态,当状态需要变化的时候,需要使用setState更新我们的组件,但是,我们想通过一个组件重渲染它的兄弟组件...这个时候,redux出现了,我们可以将所有的state交给redux去管理,当我们的某一个state有变化的时候,依赖到这个state的组件就会进行一次重渲染,这样就解决了我们的我们需要一直把state...state 更新流程: 这个过程当中涉及的函数:shouldComponentUpdate: 当组件的 state 或 props 发生改变时,都会首先触发这个生命周期函数。...却只显示了 Home 组件。

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

    Vue前端面试题

    当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。...,则应该返回同一个 index.html 页面 组件通信 父组件向子组件通信 子组件通过 props 属性,绑定父组件数据,实现双方通信 子组件向父组件通信 将父组件的事件在子组件中通过 $emit 触发...有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。 当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。...$delete(b,1) console.log(b) Vue组件间的参数传递 1.父组件与子组件传值 父组件传给子组件:子组件通过props方法接受数据; 子组件传给父组件:$emit方法传递参数...例如,当你设置vm.someData = 'new value',该组件不会立即重新渲染。当刷新队列时,组件会在事件循环队列清空时的下一个“tick”更新。

    70740

    Vue 开发经验小记(持续更新)

    非父子组件传值 主要通过事件总线传值 在根节点给 Vue 挂载一个空的 Vue 对象 Vue.prototype.bus = new Vue(); 需要发送事件的组件里 this.bus....8. v-once 指令 只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。 组件中给子组件传递个变量,子组件改变它的值了,父组件中的变量也会自动更新。 这就用到一个 "漏洞",把要传递的值封装成一个对象,改变对象中的属性值,就不会出现警告。...: 当子组件改变值时改变的是 visible 对象中的 value 属性。...超出宽度横向滑动 当子组件的宽度超过父组件,实现横向滑动。 父组件可以是整个屏幕的根元素,也可以是某个特定的元素。只要设置好 css 即可。

    2.8K30

    2023年超全前端面试题-背完稳稳拿offer(欢迎补充)

    vue组件的通信方式 父子组件通信 父->子props,子->父 $on、$emit获取父子组件实例 parent、parent、children Ref 获取实例的方式调用组件的属性或者方法 Provide...、inject 官方不推荐使用,但是写组件库时很常用 兄弟组件通信 Event Bus 实现跨组件通信 Vue.prototype....当DOM元素发生变化时,Vue会自动检测并重新渲染DOM,不会影响性能,从而使重绘和重排变得更加有效。...在patchVnode(...)中,Vue会依据新旧两个Vnode对象是否拥有子节点children执行不同的DOM操作,当两个Vnode对象都有子节点时,会调用updateChildren(...)方法递归的对子节点进行...比如,当一个页面内容比较多的时候,加载速度就会大大的降低,极大的影响到用户体验 。更有甚者,一个页面可能会有几百个图片,但是页面上仅仅只显示前几张图片,那其他的图片是否可以晚点加载用于提高性能。

    1.1K12

    总结了一些vue相关的题目,话说今年前端面试难度好大

    主要使用了宏任务微任务(setTimeout、promise那些),定义了一个异步方法,多次调用nextTick会将方法存入队列,通过异步方法清空当前队列。Vue 组件间通信有哪几种方式?...当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 ( class 和 style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。...只要侦听到数据变化, Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个watcher被多次触发,只会被推入到队列中一次。...这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环tick中,Vue 刷新队列并执行实际(已去重的)工作。...当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 ( class 和 style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。

    89160

    金三银四的 Vue 面试准备

    vue 修饰符 sync 的功能是:当父组件提供了一个数据,而子组件想要去更改这个数据,但是 Vue 的规则不能让子组件去修改父组件的数据,就需要通过 this....虚拟 DOM 的作用是在每一次响应式数据发生变化引起页面重渲染时,Vue 对比更新前后的虚拟 DOM,匹配找出尽可能少的需要更新的真实 DOM,从而达到提升性能的目的。...先看看Vue2自定义指令的钩子 bind:当指令绑定在对应元素时触发。只会触发一次。 inserted:当对应元素被插入到 DOM 的父元素时触发。...update:当元素更新时,这个钩子会被触发(此时元素的后代元素还没有触发更新)。 componentUpdated:当整个组件(包括子组件)完成更新后,这个钩子触发。...unbind:当指令被从元素上移除时,这个钩子会被触发。也只触发一次。

    1.7K21

    VUE

    作用域插槽:默认插槽、具名插槽的一个变体,可以是匿名插槽,也可以是具名插槽,该插槽的不同点是在子组件渲染作用域插槽时,可以将子组件内部的数据传递给父组件,让父组件根据子组件的传递过来的数据决定如何渲染该插槽...Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化, Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个watcher 被多次触发,只会被推入到队列中一次。...这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环tick 中,Vue 刷新队列并执行实际(已去重的)工作。...但是在 Vue 中,由于模板中使用的数据都必须挂在 this 上进行一次中转,所以 import 一个组件完了之后,还需要在 components 中再声明下。...注意:对于不变的数据确实可以用localstorage 可以代替vuex,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage

    26710

    vue核心知识点

    私有资源只有该组件和它的子组件可以调用 vue几种常用的指令 v-if: 根据表达式的值的真假条件渲染元素,在切换时元素及它的数据绑定/组件被销毁并重建 v-show: 根据表达式的真假判断,切换元素的...v-once: 只渲染元素和组件一次,随后重新渲染,元素/组件及其所有子节点将被视为静态内容并跳过,这可以优化更新性能 v-if和v-show的具体区别 共同点:v-if和v-show都能动态显示DOM...tick中,Vue刷新队列并执行实际(已去重的)工作。...所以如果你用一个for循环来动态改变数据100次,其实它只会应用最后一次改变,如果没有这种机制,DOM就要重绘100次,这固然是一个很大的开销。...data属性都是独立的,不会相互影响了,vue组件的data必须是函数,因为js本身的特性带来的,跟vue本身设计无关 v-for与v-if的优先级 当它们处于同一节点,v-for的优先级比v-if更高

    1.9K10

    微信小程序基础

    也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。...自定义组件新建组件⇒注册组件⇒使用组件父子组件传参在使用子组件时行内属性传参,子组件properties接收;行内bind事件名,子组件this.triggerEvent('事件名', 参数)组件使用子组件时 -->一次(2)onShow: 小程序初始化完成,或用户从后台切换到前台显示时触发 页面再次显示时,对应用的数据或效果进行刷新(3)onHide: 用户从前台切换到后台隐藏时触发...页面隐藏时,清除定时器(4)onError: 小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息(5)onPageNotFound:应用第一次启动的时候,如果找不到第一个入口页面触发

    21210

    前端面试(3)vue

    vue 组件通信 父传子: 子传父: 同步异步父子组件生命周期顺序 在单一组件中,钩子的执行顺序是 beforeCreate-> created -> mounted->… ->destroyed,但当父子组件嵌套时...vue 数据双向绑定原理 在 Vue 中,使用了双向绑定技术(Two-Way-Data-Binding),就是 View 的变化能实时让 Model 发生变化,而 Model 的变化也能实时更新到 View...重绘(不改变元素的位置,只改变元素的样式) 当页面元素样式改变不影响元素在文档流中的位置时(如 background-color,border-color,visibility),浏览器只会将新样式赋予元素并进行重新绘制操作...一个样式修改完接着改下一个样式,最好一次性更改 CSS 样式,或者将样式列表定义为 class 的名称 2.避免频繁操作 DOM,使用文档片段创建一个子树,然后再拷贝到文档中 3.先隐藏元素,进行修改后再显示该元素...url-loader可以设置图片大小限制,当图片超过限制时,其表现行为等同于file-loader,而当图片不超过限制时,则会将图片以base64的形式打包进 css 文件,以减少请求次数 处理.vue

    3.4K30

    最新版教学Vue.js渐进式JavaScript框架

    这个vm就是viewModel视图模型的缩写,当一个vue实例被创建时,它将data对象中的所有属性都加入到vue的响应式系统中。...核心:当这些属性的值发生改变时,视图将会产生“响应”,改变为新的值。 生命周期 每个vue实例在被创建时,都要经历一系列的初始化过程。...errorCaptured是去捕获来自子组件的一个错误的时候被调用,它可以去捕获子组件的错误。 模板语法 vue.js使用了基于HTML额模板语法,允许开发者声明地将dom绑定到底层vue实例的数据。...数据绑定的形式是使用“mustache"语法的文本插值: 使用v-once指令,执行一次性地插值,当改变数据时,插值里的内容不会被更新。 双大括号会将数据解释为普通文本,而非 HTML 代码。...v-once只显示第一次渲染的值,不再改变。

    4.2K20

    前端面经(2)

    Vue在patch过程中判断两个节点是否是相同节点,key是一个必要条件,渲染一组列表时,key往往是唯一标识,所以如果不定义key的话,Vue只能认为比较的两个节点是同一个,哪怕它们实际上不是,这导致了频繁更新元素...vue组件的通信方式父子组件通信父->子props,子->父 $on、$emit` 获取父子组件实例 parent、parent、children Ref 获取实例的方式调用组件的属性或者方法 Provide...、inject` 官方不推荐使用,但是写组件库时很常用兄弟组件通信Event Bus 实现跨组件通信 Vue.prototype....任何名称匹配的组件都不会被缓存max 数字、最多可以缓存多少组件实例vuex、vue-router实现原理vuex是一个专门为vue.js应用程序开发的状态管理库。...强缓存策略和协商缓存策略在缓存命中时都会直接使用本地的缓存副本,区别只在于协商缓存会向服务器发送一次请求。它们缓存不命中时,都会向服务器发送请求来获取资源。

    1.3K60

    校招前端二面经典react面试题及答案_2023-03-13

    当一个 匹配成功时,它将渲染其内容,当它不匹配时就会渲染 null。没有路径的 将始终被匹配。...可以渲染一个,当一个渲染时,它将使用它的to属性进行定向。...都使用了Virtual DOM(虚拟DOM)提高重绘性能都有props的概念,允许组件间的数据传递都鼓励组件化应用,将应用分拆成一个个功能明确的模块,提高复用性不同之处:1)数据流Vue默认支持数据双向绑定...对于React而言,每当应用的状态被改变时,全部子组件都会重新渲染。...里的标签和标签有什么区别对比,Link组件避免了不必要的重渲染React中props.children和React.Children的区别在React中,当涉及组件嵌套,在父组件中使用

    64440

    Vue.js渐进式JavaScript框架

    这个vm就是viewModel视图模型的缩写,当一个vue实例被创建时,它将data对象中的所有属性都加入到vue的响应式系统中。...核心:当这些属性的值发生改变时,视图将会产生“响应”,改变为新的值。 ​ ​ ? 生命周期 每个vue实例在被创建时,都要经历一系列的初始化过程。...errorCaptured是去捕获来自子组件的一个错误的时候被调用,它可以去捕获子组件的错误。 模板语法 vue.js使用了基于HTML额模板语法,允许开发者声明地将dom绑定到底层vue实例的数据。...数据绑定的形式是使用“mustache"语法的文本插值: ​ 使用v-once指令,执行一次性地插值,当改变数据时,插值里的内容不会被更新。 ​ ?...v-once只显示第一次渲染的值,不再改变。 ​ ?

    2.2K20

    2023前端vue面试题(边面边更)_2023-03-01

    对象为引用类型,当复用组件时,由于数据对象都指向同一个data对象,当在一个组件中修改data时,其他重用的组件中的data会同时被修改;而使用返回对象的函数,由于每次返回的都是一个新对象(Object...v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。...过程中调用对应的钩子 4.当执行指令对应钩子函数时,调用对应指令定义的方法 vue初始化页面闪动问题 使用vue开发时,在vue初始化之前,由于div是不归vue管的,所以我们写的代码在还没有解析的情况下会容易出现花屏现象...$set() 解决对象新增属性不能响应的问题 Vue使用了Object.defineProperty实现双向数据绑定 在初始化实例时对属性执行 getter/setter 转化 属性必须在data对象上存在才能让...当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 ( class 和 style 除外 ),并且可以通过v-bind="$attrs" 传入内部组件。

    62220

    阿里前端常考vue面试题汇总_2023-02-27

    当一个组件没有声明任何 prop时,这里会包含所有父作用域的绑定 ( class 和 style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。...当一个路由被匹配时,它的 params 的值将在每个组件中以 this.$route.params 的形式暴露出来。...子组件向父组件传值 $emit绑定一个自定义事件,当这个事件被执行的时就会将参数传递给父组件,而父组件通过v-on监听并接收参数。...v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。...会解析成函数,当子组件渲染时,会调用此函数进行渲染。(插槽的作用域为子组件) 普通插槽渲染的作用域是父组件,作用域插槽的渲染作用域是当前子组件。

    79810
    领券