MVVM的理解

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式。 在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上

如何实现一个自定义组件,不同组件之间如何通信的?

props/$emit
注:组件中的数据共有三种形式:data、props、computed
vue 组件间通信

nextTick

因为DOM渲染总是在队列任务完成之后才会执行,所以要在当前队列中查看下一个队列的数据可以使用nextTick
Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中,因为created时还没有渲染DOM

生命周期

image.png

虚拟dom的原理
双向绑定的原理?数据劫持?

通过数据劫持结合发布者-订阅者的方式来实现,Vue是通过Object.defineProperty() 来实现,Object.defineProperty()可以控制一个对象属性的一些特有操作,比如读写权、是否可以枚举等。

Proxy 相比于 defineProperty 的优势
watch computed区别

computed

  • 计算属性computed,只有依赖数据发生改变时才会重新计算
  • 不支持异步,当computed内有异步操作时,无法监听数据的变化,
  • computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算的到的值;
  • 如果一个属性是其他属性计算而来的,那么使用computed

watch

  • 不支持缓存,数据变化会直接触发重新渲染
  • watch支持异步
vue-router(hash, HTML5 新增的 pushState
  • 单页应用,如何实现其路由功能---路由原理
  • vue-router如何做用户登录权限等
  • 你在项目中怎么实现路由的嵌套
vuex的理解

klaus
4 声望0 粉丝

努力成为一个合格的前端er