Vue简介
名词解释:
渐进式:老项目用的jQuery,无法一次性迭代完毕,可以3个页面用vue,其他依然用jQuery,即渐进式。
Vue简介
1.声明式编程,替换之前如Jquery的命令式编程
2.不再需要去获取dom,然后操作dom,用了vue再去操作dom就剁手。
3.ES6新的规范,弥补之前var没有作用域的缺陷,以及OOP的方式,使闭包更具可读性。
4.SPA,单页面应用,全程无刷新,在一个模板里面来回切
5.原来的网页和静态页面几乎无异, ajax还好一点,比较平滑,就像图片一样频繁刷新无所谓,但是越发展越无法容忍,因为需求越来越像app。
刷新的本质是摧毁原来的dom,进行重新渲染,关键恶心的是原来页面里面的数据没有了,上一个页面的变量不能携带到下一个页面
例如:第一个页面显示所有的商品信息,如果要修改其中的一条,点击编辑后进入编辑页面,但是需要get请求到应用服务器后台,将这条数据在后台进行中转
然后后台将这个数据再次渲染到编辑页面的url中,
这期间的两次url转换,需要后台的支持,然后后台多调用了一次render函数进行页面的渲染,前端经历了两次页面的刷新。
一次没有必要的后台访问,一次没有必要的后台模板渲染,一旦遇到其他的使用场景,并发量一旦上来,服务器压力就大了,甚至有的时候请求会打到数据库,又多了一次没有必要的数据库访问。
5.前后端分离,前端和后端进行交互的时候只需要API文档就能实现数据交流,两个人就可以同步开发。
而django的模板引擎,就是前后端耦合的,render渲染的时候,需要将具体数据插入到特定的div里面,无法实现前后端分离。
当然一个人开发倒是无所谓,但是从软件工程的角度来讲,开发周期来看,专业的人做专业的事来看,前后端分离是大趋。
Django是全部都是服务端渲染。
工作模式转变
传统工作模式:
1.后端开接口,前端访问此接口,后端去数据库拿数据,将其传回前端。
2.前端拿到json后,用jQuery来提取不同字段到对应的位置进行显示。
3.其间你要找到dom,然后将数据嵌入到dom中。
Vue工作模式:MVVM(Model,View,ViewModel)
1.Module和View是孤立的,谁都不知道对方。
2.vue对象充当VM,一监听dom,二实现数据绑定。
3.new Vue()后这个对象,就绑定了一段dom区域,里面有这块区域的数据,事件,方法等。
4.使用者只需要声明好数据来源及变动,vue可以自动感知,实现声明式、响应式。