20201019岳浩天

面试题:

什么是MVVM/MVC,他们的区别?

MVVM是Model-view-viewModel的缩写,MVVM是一种设计思想。model层代表数据模型,可以在model中定义数据修改和操作的业务逻辑;view代表ui组件,它负责的就是将数据模型转化成UI展现出来,viewModel是一个同步view和Model的对象

在MVVM架构下,view和model之间并没有直接的关系,而是通过viewmodel进行交互,model和viewmodel之间的交互是双向的,因此view的数据变化会同步到model中,而model的数据变化也会立即反应发到view上

ViewModel通过双向数据绑定把View层和Mode层连接了起来,而View和Model之间的同步工作完全是自动的,无需人为干涉,因此开发者只需要关注业务逻辑,不需要手动操作DOM,不需要关注数据的状态的同步问题,复杂的数据状态维护完全由MVVM来统一管理

mvvm和mvc区别

都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢, 影响用户体验。vue数据驱动,通过数据来显示视图层而不是节点操作

v-for为什么一定要加key?

面试答案:因为 vue 在更新渲染 dom 的时候是根据新旧 dom 数进行对比的,使用 key 来给每个节点做一个唯一标识,Diff 算法就可以正确的识别此节点,找到正确的位置区插入新的节点

如果不加:key=“i”,v-for生成的多个元素之间,除了内容之外,没有任何差别。如果数组中的某个元素需要更新,就无法精准的更新某一个元素,而必须将整个v-for重新执行一遍,效率极其低。如果给每个生成的元素都添加一个:key="i",当一个元素发生改变时,vue只需要根据key属性的值,找到要更新的一个元素即可,不用将整个v-for重新执行一遍,效率高

vue的双向绑定(解释原理)

vue双向绑定的原理主要是通过数据劫持object.defineProperty和发布订阅者模式实现的,通过object.defineProperty监听数据发行变化然后通知订阅者(watcher),订阅者触发响应的回调(面试题标准答案)

的作用是什么?

包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。

怎么定义vue-router的动态路由以及如何获取传过来的动态参数?

在router目录下的index.js文件中,对path属性加上/:id。
使用router对象的params.id。

心得

刷面试题 冲

标签

评论

this is is footer