watch、computed和methods的区别
· methods即是方法,封装的功能代码块,调用后执行。在重新渲染的时候每次都会被重新的调用;
· computed 是自动监听依赖值的变化,从而动态返回内容,主要目的是简化模板内的复杂运算。所以区别来源于用法,只是需要动态值,那就用 computed ;需要知道值的改变后执行业务逻辑,才用 watch。
· watch也可以影响数据的变化,当绑定的数据方法变化时触发响应的函数,需要在数据变化时执行异步或开销较大的操作时使用watch。
MVVM和MVC
MVC
mvc是一种编程思想,是一种设计模式
M: model 数据模型层 提供数据
V: view 视图层 显示页面
C: controller 控制层 调用数据渲染视图
理解:视图请求数据,将请求发送至控制器,控制器再将请求发送给模型,模型去查找数据,找到之后传给控制器,控制器再传给视图进行渲染。
MVVM
M:model 数据模块层 提供数据
V:view 视图层 渲染数据
VM: ViewModel 视图模型层 调用数据,渲染视图
由数据来驱动视图(不需要多考虑DOM操作,把重心放在VM上)
MVVM就是Model-View-ViewModel的缩写,MVVM将视图和业务逻辑分开。
View:视图层,Model数据模型,而ViewModel是把两者建立通信的桥梁。
在MVVM框架下,View和Model之间没有直接的联系,而是通过ViewModel进行交互。View和ViewModel之间以及Model和ViewModel之间的交互都是双向的,因此view数据的变化会同步到Model中,而Model数据的变化也会立即反映到View上。可以说它们两者是实时更新的,互相影响。 ViewModel通过双向数据绑定把View层和Model层连接了起来,而View和Model之间的同步工作完全是自动的,因此开发者只需要关注业务逻辑,不需要手动操作DOM,也不需要关注数据状态的同步问题,这些都由MVVM统一管理。
vue中的事件修饰符
事件修饰符用于DOM的事件处理,常用的修饰符如下:
(1). stop:阻止冒泡(阻止事件向上级DOM元素传递)
(2). prevent:阻止默认事件的发生
(3). capture:捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自然顺序执行触发的事件。
(4). self:将事件绑定到自身,只有自身才能触发,通常用于避免冒泡事件的影响
(5). once:设置事件只能触发一次,比如按钮的点击等。
(6). passive:该修饰符大概意思用于对DOM的默认事件进行性能优化,根据官网的例子比如超出最大范围的滚动条滚动的。
( 7 ). native:在父组件中给子组件绑定一个原生的事件,就将子组件变成了普通的HTML标签,不加'. native'事件是无法触 发的。(可以理解为该修饰符的作用就是把一个vue组件转化为一个普通的HTML标签,并且该修饰符对普通HTML标签是没有任何作用的)