高频率Vue面试题及答案有哪些
更新时间:2023-09-29Vue实例的生命周期钩子函数
Vue实例有一套完整的生命周期,从创建、初始化数据、编译模板、挂载DOM、渲染、更新、销毁等一系列过程。在这个过程中,会触发一些钩子函数,用于开发者自己的逻辑处理。
//示例代码 new Vue({ el: '#app', data() { return { message: 'Hello Vue!' } }, beforeCreate() { console.log('Vue实例创建之前') }, created() { console.log('Vue实例已创建完成') }, beforeMount() { console.log('Vue模板未挂载到DOM上') }, mounted() { console.log('Vue实例已经挂载到DOM上') }, beforeUpdate() { console.log('Vue数据即将更新') }, updated() { console.log('Vue数据已经更新完毕') }, beforeDestroy() { console.log('Vue实例即将销毁') }, destroyed() { console.log('Vue实例已经销毁') } })
父子组件通信
在Vue中,父子组件是常见的组件间通信方式。父子组件之间可以通过Props传递数据,也可以通过$emit触发事件。
//该示例是父组件向子组件传递数据,子组件通过props获取 //父组件//子组件 //向子组件传递父组件的数据 {{ message }}//通过props接收父组件传递的数据
//该示例是子组件向父组件传递数据,子组件通过$emit触发事件 //子组件 //父组件//监听子组件触发的事件
Vue中的路由
Vue中常用的路由管理工具为Vue Router。Vue Router支持多种路由模式,如hash模式、history模式等。
//示例代码,路由模式为history模式,访问http://localhost:8080/home时,会跳转到Home组件 import VueRouter from 'vue-router' const routes = [ { path: '/', redirect: '/home' //重定向到'/home'路径 }, { path: '/home', component: Home }, { path: '/about/:id', //参数形式的路由 component: About } ] const router = new VueRouter({ routes, mode: 'history' }) new Vue({ router }).$mount('#app')
Vue中的computed和watch
Vue中的computed和watch可以监听数据的变化,实现自动更新,区别在于computed有缓存,watch没有缓存。
//示例代码,computed姓名:{{ name }}
年龄:{{ age }}
//示例代码,watch总结:Vue作为近几年来的前端框架,应用非常广泛,除以上的几个知识点外,还有组件间通信、父子组件生命周期函数、Vuex、自定义指令、插件等等,开发者需要掌握这些知识点,才能更好地使用Vue实现复杂的业务逻辑。同时,Vue的社区非常活跃,有许多优秀的第三方库可供选择,可以大大提高开发效率。//监听message的变化