vue面试问题汇总

1,响应式原理是什么,简单说一说他的场景
答:Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原 理同样重要,这样你可以避开一些常见的问题。----官方文档
2,Vue中直接修改数组下标的值是否会更新视图?
答:不会。Vue 不能检测以下数组的变动:
当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
当你修改数组的长度时,例如:vm.items.length = newLength
高端回答,vue实例中可以通过data属性定义数据,这些数据在实例对应的模板中绑定并使用,如果data传入的是一个对象,那么vue实例会代理其data对象里所有的属性,而不是对进入的对象进行深拷贝。只有在初始化时传入的对象才是响应式的,即声明完实例后再修改是无效的。如果想变得有效可以使用 s e t v m . set vm. setvm.set(‘变量名’,值);但vue会抛出异常告诉你尽量不要这样使用。
3, computed watch methods 有什么区别?
答:Computed, 计算属性,结果会被缓存,除非依赖的响应式属性变化才会重新计算,主要当做属性,进行数值计算;应用场景 :vuex取值,模板加载时页面有比较多的判断项等
watch,监听属性,watch的作用可以监控一个值的变换,并调用因为变化需要执行的方法。可以通过watch动态改变关联的状态。
methods,方法,主要写主业务逻辑。
4, VUE实例的生命周期
答:1,beforeCrate 在实例初始化时同步调用,此时数据观测和事件还没有初始化。对应vue1中的init。2,created:在实例创建完成后调用,此时数据绑定与事件已经加载完成,但未开始DOM渲染,既未挂载到document.对应vue1中的beforeCompile。3,beforeMount vue2.0新增的生命周期钩子,在mounted(挂载,同Mount)前调用。4,mounted 这时候所有的指令都已经生效,数据变化DOM也会更新,但是不保证$el是否已经给插入到文档中,对应vue1中compile(编译)5,三个vue2.0中废除的生命周期函数:ready,attached,detached.(可以不说)6,beforeDestroy(Destroy:销毁)开始销毁实例时调用,此时的实例依然有效。7,Destroy,实例销毁后调用,此时的所有绑定和指令都已经解绑,子实例都已经销毁。8,beforeUpdate 2.0新增的钩子函数,在实例挂载后,再次更新实例(data),此时未更新DOM结构。9,update 2.0新增,在实例挂载后,再次更新实例,并更新DOM后调用。10,2.0新增activated(开始)搭配keep-live属性使用,在动态初始化渲染过程中调用该方法。11,deactivated(解散)2.0新增,搭配keep-live使用,在动态组件移出的过程中调用该方法。
盒子模型:w3c盒子模型。IE盒子模型,通常使用w3c盒子模型。
了解flex布局吗:

猜你喜欢

转载自blog.csdn.net/HDhanmingyang/article/details/108636734