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
生命周期
虚拟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如何做用户登录权限等
- 你在项目中怎么实现路由的嵌套
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。