vue提供的MVVM框架模式的数据双向绑定,实现了HTML和js的代码分离,提高代码的维护性
vue.js的核心思想包括:数据驱动和组件化思想。
如果没有中间的ViewModel则关系图编程下面所示:通过Ajax通信获得后台数据,那么要将获得数据显示在DOM上,则需要手动操作DOM节点。这是一个繁琐的过程,还很容易出错。
而使用vue.js后则省去手动操作DOM 。在vue.js里面只需要改变数据,Vue.js通过Directives指令去对DOM做封装,当数据发生变化,会通知指令去修改对应的DOM,数据驱动DOM的变化,DOM是数据的一种功能自然的映射。vue.js还会对操作做一些监听(DOM Listener),当我们修改视图的时候,vue.js监听到这些变化,从而改变数据。这样就形成了数据的双向绑定。
实现数据双向绑定的方法:
数据劫持结合发布者-订阅者模式(vue.js)【vue data是如何实现的??】
vue.js采用数据劫持结合发布者-订阅者的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时,发布消息给订阅者,触发相应的监听回调。
具体的来讲,Vue.js通过Directives指令去对DOM做封装,当数据发生变化,会通知指令去修改对应的DOM,数据驱动DOM的变化。vue.js还会对操作做一些监听(DOM Listener),当我们修改视图的时候,vue.js监听到这些变化,从而改变数据。这样就形成了数据的双向绑定。
vue组件的功能
1)能够把页面抽象成多个相对独立的模块
2)实现代码重用,提高开发效率和代码质量,使得代码易于维护
$set和$delete是对对象来进行更改的
添加和删除:
更改:
指令就是用来操作dom的
组件:相当于封装代码的,具有复用性
组件创建的;两种方式:这个是外部创建组件
创建组件并且引用组件:
局部注册组件:
组件他是一个独立的模块:
引用了组件模块:
脚手架:相当于一个项目搭建了一个环境
打包工具
vue的文件是要经过解析的,vue-loader是基于webpack的
main.js里面的