Model:数据模型,数据和业务逻辑都在这里定义;View代表视图,负责数据的展示;ViewModel:负责监听model中数据的改变并且控制视图的更新,处理用户交互操作;Model和View无直接联系,是通过ViewModel来联系的,Model和ViewModel之间有双向数据绑定的关系,因此当model中数据改变时会触发view层的刷新,View中由于用户交互操作而改变的数据也会在Model中同步。
官网上也有比较详细的解释:https://cn.vuejs.org/v2/api/#computed;这里加一点个人的通俗的理解,watch是监听的属性,对象有变化时才会执行,比如一进去一个组件时监听值没有变化,那依赖它的返回也不会有,而computed却依然会计算,它计算出的值会在vue实例中,computed计算属性会缓存值,即如果计算结果依赖的属性没有变化,没有导致计算结果变化就不会重新计算;methods是方法,必须要触发才会执行,也可以在vue指令中直接调用,可以带参数。
这个一般看个人项目需求,我们的项目页面一般是需要在页面加载完之前将数据准备好,这样页面渲染时数据也准备好了;但是假如请求比较大,需要先加载完页面,那就放在mounted阶段,通常在这两个阶段发数据请求比较常见。
原文:https://www.cnblogs.com/shirley-happy/p/10421936.html