一、你对MVVM的理解
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。
二、vue2.x的生命周期
从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。
三、vue2.x有哪些指令语法
v-if,v-else,v-show,v-once,v-for,v-html,v-bind,v-on,
区别:v-if是直接注释掉,不占页面空间;v-show是加一个display:none隐藏,占页面空间;
四、vue data为什么是函数而不是对象?
防止复用,相互隔离,互不影响
五、watch和computed的区别
(1)watch不需要主动调用,它监视的数据变化了会自己调用回调函数;computed需要主动调用
(2)computed必须有return返回,而watch不必须
(3)watch中的函数名必须和data中的数据名保持一致
(4)computed所依赖的属性不变时执行computed里面的函数会调用缓存读取依赖的数据;watch每次监听的值发生变化时会调用回调。
(5)computed中不能有异步,watch中可以有异步。
(6)computed默认第一次加载的时候就开始监听;watch默认第一次加载不做监听,如果需要第一次加载做监听,添加immediate属性,设置为true(immediate:true)
六、key在vue框架中的作用
key是vue中虚拟dom标记的唯一id,可以唯一确定一个DOM元素,让diff算法更加高效
七、vue-router的原理/本质
路由就是用来解析URL实现不同页面之间的跳转,分为两种方式:hash/history模式,他们可以更新视图但不会重新请求页面
八、vuex的属性和用法
state:存储变量
getters:计算属性,从基本数据(state)派生的数据
mutations:提交更新数据的方法,必须是同步的
action:和mution的功能大致相同,不同之处在于 (1)action提交的是mution,而不是直接变更状态,(2)action可以包含任意异步操作。
modules:模块化vue,可以让每一个模块拥有自己的 state、mutation、action、 getters,使得结构非常清晰,方便管理。