不可质疑,国内Vue使用者多于React使用者,其中Vue官网有一段这样的表述:“更抽象一点来看,我们可以把组件区分为两类:一类是偏视图表现的 (presentational),一类则是偏逻辑的 (logical)。我们推荐在前者中使用模板,在后者中使用 JSX 或渲染函数。这两类组件的比例会根据应用类型的不同有所变化,但整体来说我们发现表现类的组件远远多于逻辑类组件”。所以Vue相比React还是有一定的优势!
但我写这篇“流水文章”,是为了面试也为了系统总结一下Vue相关知识。
基础篇
谈谈你对MVVM的理解
MVVM是 Model、View、 ModelView的缩写
Model: 数据模型层,可以在Model中定义数据修改和操作的业务逻辑
View: 数据视图层,将数据模型转为UI展现出来
Model-View: 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
然后再来看一下的图示:
它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。
Vue的生命周期
beforeCreate(创建前) 组件实例被创建之初,组件的属性生效之前
created (创建后) 组件实例已经完全创建,属性也绑定,但真实 dom 还没有生成,$el
还不可用始,$el
还没有显示