c语言编程笔录

首页 >   > 笔记大全

笔记大全

总结分享一些关于vue的前端基础面试题

更新时间:2023-10-09

前言

Vue 是一种流行的JavaScript 框架,用于构建用户界面。它使开发者能够以声明式的方式构建可复用的组件,并将其组合成更大的应用程序。在前端开发的面试中,经常有关于Vue的问题。本文将分享一些常见的Vue前端基础面试题。

1. Vue的生命周期钩子有哪些?

Vue的生命周期钩子是一些在Vue实例不同阶段执行的回调函数。这些钩子函数使得开发者能够在不同的生命周期阶段执行自己的逻辑。Vue的生命周期钩子主要有以下几个:

// 创建阶段
beforeCreate: 在实例初始化之后,数据观测(data observer)和事件/watcher 事件配置之前被调用。
created: 在实例创建完成后被立即调用。在这一步,实例已经完成了数据观测,属性和方法的运算,watch/event 事件回调。
  
// 挂载阶段
beforeMount: 在挂载开始之前被调用。相关的 render 函数首次被调用。
mounted: el 被新创建的 vm.$el 替换,并挂载到实例上之后调用该钩子。
  
// 更新阶段
beforeUpdate: 在数据更新之前调用,发生在虚拟 DOM 打补丁之前。
updated: 在由于数据更改导致的虚拟 DOM 重新渲染和打补丁之后调用。
  
// 销毁阶段
beforeDestroy: 在实例销毁之前调用。实例仍然完全可用。
destroyed: 在实例销毁之后调用。实例的所有东西都会解绑,所有的事件监听器会被移除,所有的子实例也会被销毁。

2. Vue的计算属性和监听器有什么区别?

Vue中的计算属性和监听器都用于监测Vue实例中数据的变化,但其实现方式和用途有所不同。

计算属性是基于它们的依赖进行缓存的。当计算属性依赖的数据发生变化时,计算属性会重新计算值,并返回结果。计算属性的结果会被缓存,直到它依赖的数据发生改变,才会重新计算。这在处理复杂的逻辑或需要多次计算的场景下非常有用。

而监听器则是侦听数据的变化,当被监听的数据发生改变时,执行回调函数。监听器通过使用Vue提供的$watch API来实现。

// 计算属性示例
computed: {
  fullName: function() {
    return this.firstName + ' ' + this.lastName;
  }
}

// 监听器示例
watch: {
  firstName: function(newValue, oldValue) {
    // 当 firstName 发生变化时,执行回调函数
    console.log('firstName 变为:', newValue);
  }
}

3. Vue的路由和组件之间是如何通信的?

在Vue中,路由和组件之间有多种通信方式:

props:路由组件可以通过props接收来自路由的参数,并将参数传递给组件的子组件。

emit:组件可以通过触发自定义的事件,将数据传递给父组件。父组件可以通过监听子组件的事件来接收数据。

vuex:Vuex是Vue的官方状态管理库,用于将共享的状态存储在一个地方,并通过getter和mutation实现组件之间的通信。组件可以通过vuex的store获取和改变状态。

provide/inject:父组件可以通过provide提供数据,在子组件中使用inject接收数据。

总结

本文介绍了一些关于Vue的前端基础面试题。了解Vue的生命周期钩子、计算属性和监听器的区别,以及路由和组件之间的通信方法对于面试Vue开发岗位非常有帮助。在准备面试时,不仅要掌握这些知识点,还要能够在实际项目中灵活运用。