什么是MVVM框架
首先解释下什么是MVC模式,即模型(model)-视图(view)-控制器(controller)的缩写,这也是最常见、最传统的软件架构之一。每次model中data的更新都需要重新刷新加载才能将新数据显示在网页上,但这种模式无疑浪费了很多资源,也增加了很多无意义的http请求,即使使用了Ajax的异步加载方法,任需要一些手动操作才能改变,为了提高效率,目前很多人支持使用MVVM框架,Vue、Angular皆是该模式的框架代表。
如图所示,MVVM框架是有View(视图)、Model(数据)以及ViewModel(View与Model的连接器)组成。View与Model通过ViewModel实现双向绑定。
Vue是如何实现双向绑定
在Vue.js的ViewModel中使用directives指令(eg:v-bind,v-text等)对view中的dow进行封装。每一个指令都会对应一个Watcher(观察者)。
Vue.js源代码中使用的是ES5的Object.defineProperty()方法,在此方法中包含set以及get两个函数,
- 当Model中的数据发生改变时=>触发set方法=>watcher观察到变化后进行运算,发现重新运算后的值与指令中的原值不一样=>调用指令中的update()方法更新dom视图数据。
- 当用户在页面进行一些操作导致数据发生改变=>watcher同样观察到变化=>触发model中的get方法=>改变数据库数据。
Vue-router
官方文档
安装方式:在package.json中的”dependencies”添加依赖,再次在命令行中输入npm install
引入:在main.js中import(根据node_model文件夹下router中的name)
用过Vue.use(VueRouter)安装插件(路由模块),标签使用<a v-link="{path:'/路径'}"></a>
将会自动刷新对应的<router-view></router-view>
Vue-resource 前后端数据交互插件
官方文档
写在Vue.js的created()生命周期钩子下,
this.$http.get(‘/api/‘).then(response)=>{
成功时的回调函数
},(response)=>{
成功时的回调函数
});
注意
要会看官方文档!!!