VUE的几个面试题
复习一下VUE的面试吧,或许有用呢?
1、VUE组件中的data为什么必须是函数?
答:为了保证每个组件可以维护自己独立的data,确保组件的独立性。如果VUE组件的data是一个对象的话,那么data会在多个实例之间共享,这个就意味着一个组件修改了data,那么另一个组件的data也会改变。
2、computed和watch的区别
答:
- 在功能上,computed用来计算属性;watch用来监听一个值是否变化,并且执行相应的回调函数。
- computed支持缓存,当组件相关的属性值发生改变的时候,就会重新计算属性,否则就从缓存中获取;watch不支持缓存,对应属性发生变化的时候,响应执行;
- computed不支持一步,异步操作的时候不能监听到数据的变化;watch支持一步操作;
- computed在组件第一次加载的时候监听,watch默认第一次不监听。
- computed的函数必须调用return
3、VUE组件第一次加载的时候会触发哪些钩子函数?
答:beforeCreate、created、beforeMount、mounted这四个钩子函数。
beforeCreate:在实例化后,数据观测和事件监听配置之前被调用。
created:实例创建完成后调用,此阶段完成了数据观测,属性和方法的运算,以及事件监听,$el属性还没有显示出来。
beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。此时还没有开始挂载节点,$el属性目标不会有任何变化。
mounted:并挂载到实例上去之后调用该钩子
4、VUE组件之间的通信方式有哪些?
答:
- props / e m i t 。父组件通过 p r o p s 向子组件传递数据,子组件通过 emit 。父组件通过props向子组件传递数据,子组件通过 emit。父组件通过props向子组件传递数据,子组件通过emit和父组件通信。
- emit/on 。子组件通过emit发送事件,父组件通过on监听子组件事件来接收数据
- vuex 。vuex是一个专为Vue.js应用程序开发的状态管理模式和库,用于在组件之间共享状态。
- ref/parent/children 。通过ref属性或者parent、children属性来实现父子组件之间的通信。
5、delete和vue.delete删除数组有什么区别
答:delete 是 JavaScript 的一个操作符,用于删除对象的属性。当用于数组时,删除指定的索引位置上的元素,但不会改变其他元素的索引。被 delete 删除的数组位置会变成 undefined,并且该位置的元素不会被其他元素替代。
vue.delete 是 Vue.js 提供的一个方法,专门用于删除数组或对象的属性,并确保视图能够正确地响应这种变化。在 Vue 中,当你直接通过索引设置数组项为 undefined 时,视图可能不会更新,因为 Vue 无法检测到这种变化。但是,使用 vue.delete 可以确保 Vue 能够检测到数组的变化,并触发相应的更新。
原文地址:https://blog.csdn.net/xuelian3015/article/details/136491511
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!