首页 > 其他分享 >vue春招面试题

vue春招面试题

时间:2023-02-08 16:37:04浏览次数:47  
标签:面试题 vue dom show watch Vue 春招 组件

 

 

 一、MVVM模型

●model->data数据

●view->dom模型,

●viewModel->视图模型,实例。相当于一个桥梁   二、Vue中响应式数据的理解

 

 

三、Vue如何检测数组变化

  • push:后面新增一个元素
  • pop:删除一个元素
  • shiftl:删除第一个元素
  • unshift:前面加一个元素
  • splice:指定位置删除/添加/替换一个元素
  • sort:数组进行排序
  • reverse:反转数组

四、Vue2组件生命周期有哪些?

  • beforeCreate():在实例初始化之后,event,watch事件之前
  • Created():可以访问到data数据,数据代理
  • beforeMount():解析模板,生成虚拟dom
  • Mounted():解析模板到真实dom,页面渲染
  • beforceUpdate():数据更新,发生在虚拟dom
  • Update():真实dom,渲染到页面
  • beforceDestory:实例销毁前调用
  • Destory:实例销毁之后调用,调用后Vue实例的所有东西都会被解绑,所有的事件监听会被移除,子实例被销毁,该钩子在服务端渲染期间不被调用。

五、nextTick

this.$nextTick(回调函数)在下一次DOM更新结束后执行其指定的回调

什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行

六、computed和watch的区别

  1. computed能完成的功能,watch都可以完成。

    • 定义:要用的属性不存在,需要通过已有属性计算得来
    • 底层借助了0bjcet.defineproperty()方法提供的 getter和setter
  1. watch能完成的功能,computed不一定能完成,例如: watch可以进行异步操作。

    • watch是监控值的变化,当值发生改变的时候,会调用回调函数

七、说明key的作用和原理

  • 没有key会导致更新的时候出问题
  • 尽量不要采用索引作为key

八、组件的理解

定义:局部功能代码和资源的集合

九、vue的修饰符有哪些

  • prevent:阻止默认事件(常用);
  • stop:阻止事件冒泡(常用);
  • once:事件只触发一次(常用);
  • capture:使用事件的捕获模式;
  • self:只有event.target是当前操作的元素是才触发事件;
  • passive:事件的默认行为立即执行,无需等待事件回调执行完毕;

十、vue-router有几种钩子函数?执行流程如何?

  • 全局守卫
  • 路由守卫
  • 组件守卫

十一、vuerouter的两种模式的区别

  • vue-router中有三种模式,分别是hash、history、abstract
  • abstract在不支持浏览器的API换景使用
  • hash模式兼容性好,但是不美观,不利于SEO
  • history美观,historyAPI+popState,但是刷新会出现404

十二、Vue的性能优化有哪些?

  1. 数据层级不要过深,合理的设置响应式数据
  1. 使用数据时,缓存值的结果,不频繁取值
  1. 合理设置key
  1. v-show(频繁切换性能高)和v-if的合理使用
  2. 控制组件的粒度 -> Vue采用组件级别更新
  3. 采用函数式组件 -> 函数式组价开销低
  4. 采用异步组件 -> 借助webpack的分包策略
  5. 使用keep-alive来缓存组件
  6. 虚拟滚动、时间分片等策略
  7. 打包优化

十三、v-if,v-show的区别

  1. 展示形式不同
  • v-if是 创建一个dom节点
  • v-show 是display:none 、 block ,隐藏
  1. 使用场景不同
  • 初次加载v-if要比v-show好,页面不会做加载盒子
  • 频繁切换v-show要比v-if好,创建和删除的开销太大了,显示和隐藏开销较小

标签:面试题,vue,dom,show,watch,Vue,春招,组件
From: https://www.cnblogs.com/lmj9911/p/17102293.html

相关文章

  • 【pinia-plugin-persistedstate】Vue3 pinia 数据持久化插件 pinia-plugin-persisteds
    为什么需要持久化?刷新浏览器后,重新加载页面时会重新初始化vue、pinia,而pinia中状态的值仅在内存中存在,而刷新导致浏览器存储中的数据就没了。在实际开发中,浏览器刷新......
  • 前端(vue)导出pdf
    纯前端导出pdf实现方法如下:1.安装html2pdf、jspdfnpminstallhtml2canvasjspdf--save2.项目utils文件夹中新建一个html2pdf.js(文件名称自拟)文件,内容如下:imp......
  • vue中eslint的配置
    创建eslint.js文件/或在eslint.js文件中配置以下文件//eslint配置文件module.exports={root:true,env:{node:true},extends:['plugin:vue/e......
  • 表单设计器(avue-form-design)--引入
    安装依赖npminstallelement-ui@smallwei/avue@sscfaith/avue-form-designmain.js引入importVuefrom'vue'importAppfrom'./App.vue'importrouterfrom'......
  • tcp三次握手,四次挥手(面试题)
    tcp三次握手1.第一次握手:客户端给服务器发送一个syn报文;2.第二次握手:服务器收到SYN报文之后,会应答一个SYN+ACK报文;3.第三次握手:客户端收到SYN+ACK报文之后,会回应......
  • vue+echarts实现疫情(全国新增趋势、境外输入省市TOP5)
    全国新增趋势效果:代码:<template><div><divid="right1"style="height:800px;width:100%"></div></div></template><script>exportdefault{data(){......
  • vue+echarts实现疫情柱状图(全国确诊省市TOP10)
    效果:代码:<template><div><divid="right1"style="height:800px;width:100%"></div></div></template><script>exportdefault{data(){return{......
  • vue+echarts实现疫情折线图
    效果:代码:<<template><div><divid="left1"style="height:800px;width:100%"></div></div></template><script>//疫情数据//exportdefault{data()......
  • Vue环境安装
    环境安装一、node1.为什么需要node环境Vue.js本质上就是一个Js库,可以直接在页面通过script标签引用。这种使用方式只使用了VueJs的”构建用户界面“,使用不了他的模块化......
  • vue+element DatePicker日期选择器封装(可自定义快捷选择时间)
    前言今天封装了一个DatePicker日期选择器,发现带快捷选择的不太好封装,我需要在不同的地方快捷选择不同的时间,并且快捷显示的时间是从昨天开始,在网上找了一圈都没找到便自己......