vue学习总结

176 阅读4分钟

1.vue是什么? vue是一套用于构建用户界面的渐进式框架, 渐进式框架指的是一开始只需要掌握其核心功能,随着开发的深入和需求逐步导入对应的功能 2.vue的特点是数据驱动,即数据是响应式的,一旦数据改变,页面会自动刷新 3.什么是MVVM设计模式? M:module数据层 V:view视图层 VM:vm实例(vue实例) MVVM模式通过数据的双向绑定,当视图变化数据会更新,反之当数据变化时视图也会更新,无需dom操作, vm类似v与m中间沟通的桥梁,负责监听数据和视图的变化

4.为什么data是一个函数? 因为组件可以复用,data如果是一个对象的话则是引用类型,引用类型在拷贝时拷贝的是地址,如果一个组件中的数据发生变化,会影响其他组件的值变化,而如果data是一个函数的话,调用函数会返回一个全新的对象,他们就可以做到互不干扰

5.scoped的原理和作用 scoped作用是给子组件增加作用域,避免子组件的样式被覆盖, 原理是根据css的渲染层级关系,当子组件和父组件选择器权重相同时,父组件会覆盖子组件的样式,所以scoped给子组件增加了自定义属性,通过属性选择器增加css权重

6.v-show与v-if区别 v-if的本质是元素的新增和移除,元素不频繁切换时使用,v-if有惰性,当初始条件为false时不会渲染,只有当初始条件为true时才会第一次渲染,可以节省内存开销 v-show的本质是修改css样式的display属性,频繁切换时使用,因为v-show是改变css的样式,所以在频繁切换时v-show比v-if更好

7.计算属性和侦听器区别 1.功能不同,计算属性是可以解决模快化语法的冗余问题,侦听器是监视data中的数据变化 2.计算属性有缓存,侦听器没有缓存 3.计算属性不支持异步操作,侦听属性支持异步操作 4.计算属性可以给vue增加新属性,侦听器只能监听data中的属性

8.Vue中key值作用 vue在渲染时,会将新dom与旧dom进行对比,如果结构一致则会进行复用,提升渲染性能, 相当于给元素增加一个身份认证的唯一标识符,强制更新dom

9.为什么组件data必须是函数 因为组件需要复用,而如果data是对象的话,对象是引用类型,复用时拷贝的是地址,,当一个组件中的数据发生变化时,其他组件也会变化,而如果data是函数的话则在调用函数时返回一个新对象,他们之间可以互不影响

10.为什么要给子组件设置scoped 因为当子组件与父组件的选择器权重相同时,父组件会覆盖子组件的css样式,scoped会给子组件增加css作用域,避免样式被父组件覆盖,原理是给子组件增加自定义属性,通过属性选择器增加选择器权重

10.nextTick 的原理是什么 vue中更新dom是一个异步的promis微任务,nexTick也是一个异步的promise微任务,会等待当前队列中dom元素更新后再执行 11.vue生命周期总共分为几个阶段 初始阶段:beforCreate Created 最早操作data,一般用于发送ajax 挂载阶段:beforMount mounted 最早操作dom元素 更新阶段:beforUpdata updataed 销毁阶段:befordistory distoryed 一般用于清理永久定时器 12.第一次加载页面会触发哪几个钩子函数 beforCreate Created beforMount mounted

13.query参数和params参数区别 query参数通过url传递,可以在地址栏显示,页面刷新后数据还在 params参数通过内存传递,不能显示,页面刷新后数据清理 14.routeroute和router的区别? route是路由信息,route是路由信息, router是VueRouter的实例,包含了router实例中的所有属性方法