前端常见Vue2.0面试题

简介: vue3.0出来后,还有部分项目是用2.0开发。所以将曾经旧的阿里云博客迁移了过来。

今天我们来说说常见的vue面试题,其实这个技术已经出现了几年时间,每个城市的问法也都八九不离十,因为vue也就那么些技术,问不出什么太新鲜的东西。目前vue3.0兴起,可能会有一些面试官顶多问下与2.0的区别,那么今天我们就简单说说关于vue的一些面试题。

其实博主自己也是不爱背题,在面试前从来不怎么看题,一般都是用到的东西说一说。但事实上面试官就看你回答得怎么样,很少有面试官真正能感觉出你到底是不是背的,所以博主在这方面就很吃亏,先说一下经常被问到的知识,简单些,回答上你们可以更好。我给你们学一下大部分的面试官:
️注意:本人简历中有本人博客链接,若面试官看到此篇文章就当作没看见就可以了。自己头脑不好使,这些都是随笔记录,写完也经常记不住的

--- 开始:

0、vue用了多久了?说一下自己所做的项目情况。
根据自己的情况说。

1、vue中的通信都有哪些?
父子通信,兄弟通信,vuex。

2、嗯,那你说说父子通信都怎么传值的?
父传子用props接收参数进行传值,在子组件中定义一个props,来接受父组件传过来的值,并在子组件中使用。

3、那如果想传参严谨一些怎么实现呢?比如只接受某些类型的参数?
我们在props中可以定义参数的类型,比如我就固定接收一个数字类型,我可以定一个变量为num,设置一些类型。

props:{
  num:Number
}

4、嗯,那子传父呢?
子传父,用一个回调函数,通过this.$emit()的方法。它有两个参数,第一个是父组件中监听的方法名,第二个是方法。父组件监听这个方法名即可。

5、嗯,那还有没有其他方法可以实现的呢?
vue中新增了两个新增事件,一个是v-bind="$attrs",一个是v-on='$listeners'。当我们在创建一些组建的时候,这两个事件可以帮助我们监听到子组件的改变,从而实现了父组件的变化。

6、那这两个方法分别是什么用途呢?
v-bind="$attrs" 它包含了父作用域中不作为 prop 被识别的特性绑定;
v-on='$listeners' 它包含了父作用域中的事件监听器,可以触发父组件中的事件。

7、好,那你介绍一下vueX吧,说说其中都有什么。
vueX是处理复杂的父子通信时,需要用到的技术。
state中可以定义一些常量,getters中写触发state改变的方法,通常用到getters比较少。
还有两个可以存放方法的地方是actions和mutations,一个是异步,一个是同步,我们一般都用mutations存放一些方法,在页面中通过this.$store.commit()方法来触发mutations,从而改变state中的值。
复习vuex可以点击这里

8、自己怎么封装一个组件?(或者问如果页面有相同的功能块怎么办?)
很简单啊,在components文件夹中创建一个 .vue 组件,我们标准命名首字母大写。写上公用的组件和样式,内部的值都用动态绑定。并且创建props接收方法即可。不过现在的UI库也都特别多,我们一般都直接使用UI库就可以了,简单还方便,有不同的地方,简单封装一下就可以了。

9、你们路由都怎么封装的?
我们都是使用公司给的框架,vue-cli在创建路由时,会直接引入路由组件的,我们只需要在 views 文件夹下创建自己的页面,在路由 path 中定义页面路径;写个 name 名称;在 component 中可以用个箭头函数写上页面的路径即可。并且我们一般会定义一个重定向 redirect 到一个指定页。

10、那你们环境都怎么配置的?
(虽然说公司都是配置好的,不过也要简单的说说,点此跳转vue框架配置
目前我们用的都是vue-cli3.0的配置,下载完框架后,自建 vue.config.js 文件,其中可以引入node中的 path 来打包一些样式文件等,是他们压缩到一个盘下。vue-cli3.0提供了一个 publicPath属性,之前2.0叫 baseURL。在这我们可以进行测试环境或上线环境的配置,可以通过 process.env.NODE_ENV === 'production' ? '/自己项目的路径path/' : '/' 进行三目判断,我们还可以配置各种 loader ,以及配置 proxy 来解决跨域请求。

11、嗯,那你再说一下vue中常用的生命周期有哪些,分别是干什么的
常用的有8个(生命周期不仅仅是8个),都是成对出现。分别是:
beforeCreate阶段、created阶段;
beforeMount阶段、mounted阶段;
beforeUpdate阶段、updated阶段;
beforeDestroy阶段、destroyed阶段;
分别为:创建前/后,载入前/后,更新前/后,销毁前/后。

12、那实例是在哪个阶段创建完的?
在mounted阶段实例创建完成。

13、实例初始化是在哪个阶段?
在created阶段实例初始化,但还未完成。

14、有没有了解过vue的实现原理?
vue采用的是数据劫持,结合发布者和订阅者模式,通过 Object.defineProperty() ,来对于每个属性的 gettersetter进行劫持,在数据更改时,发布消息给到订阅者,重新渲染页面。
(具体的步骤有兴趣的可以去看源码)

15、知不知道hash和history两种模式?简单说说:
直观上的区别就是差一个“#”,hash中的地址是写在“#”后边的;但history没有。
要是使用hash模式,hash之前的内容会包含在请求中;history模式URL就要和后端进行一致,所以要改为history也需要后端的配合,否则会报错。
所以hash模式在每次刷新页面时是直接更改“#”后的东西,history每次刷新会重新像后端请求整个网址,也就是重新请求服务器。如果后端没有及时响应,就会报错404!。history的好处是可以进行修改历史记录,并且不会立刻像后端发起请求。不过如果对于项目没有硬性标准要求,我们可以直接使用hash模式开发。

16、在开发时,有没有遇到过什么问题印象深刻?
(按照自己的情况说。)

17、好的,准备入职

文章写到这里,希望大家可以有所收获!

weChat:VillinWeChat

目录
相关文章
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
1月前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
66 1
|
21天前
|
JavaScript 前端开发 搜索推荐
Vue的数据驱动视图与其他前端框架的数据驱动方式有何不同?
总的来说,Vue 的数据驱动视图在诸多方面展现出独特的优势,其与其他前端框架的数据驱动方式的不同之处主要体现在绑定方式、性能表现、触发机制、组件化结合、灵活性、语法表达以及与后端数据交互等方面。这些差异使得 Vue 在前端开发领域具有独特的地位和价值。
|
2月前
|
JavaScript 前端开发 算法
前端优化之超大数组更新:深入分析Vue/React/Svelte的更新渲染策略
本文对比了 Vue、React 和 Svelte 在数组渲染方面的实现方式和优缺点,探讨了它们与直接操作 DOM 的差异及 Web Components 的实现方式。Vue 通过响应式系统自动管理数据变化,React 利用虚拟 DOM 和 `diffing` 算法优化更新,Svelte 通过编译时优化提升性能。文章还介绍了数组更新的优化策略,如使用 `key`、分片渲染、虚拟滚动等,帮助开发者在处理大型数组时提升性能。总结指出,选择合适的框架应根据项目复杂度和性能需求来决定。
|
2月前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
134 4
|
2月前
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
58 4
|
2月前
|
JavaScript 前端开发 Java
VUE学习四:前端模块化,ES6和ES5如何实现模块化
这篇文章介绍了前端模块化的概念,以及如何在ES6和ES5中实现模块化,包括ES6模块化的基本用法、默认导出与混合导出、重命名export和import,以及ES6之前如何通过函数闭包和CommonJS规范实现模块化。
101 0
VUE学习四:前端模块化,ES6和ES5如何实现模块化
|
2月前
|
JavaScript 前端开发 网络架构
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】 React与Vue:前端框架的巅峰对决与选择策略