前端 mvvm 框架底层学习(八、双向绑定加入发布订阅模式)

前言

上一篇《前端 mvvm 框架底层学习(七、双向绑定优化)》介绍了我们如何解决了双向绑定中的局部更新的问题,或者解决更小颗粒度更新的问题,但代码比较混乱,所有的 Dom 操作及数据绑定操作都耦合到了一起。这里我们来学习一下 Vue 是如何结合合经典的发布/订阅模式进行双向绑定优化的。 继续阅读“前端 mvvm 框架底层学习(八、双向绑定加入发布订阅模式)”

Vue 是如何进行模板编译的?(一)

前言

如果以简单使用者的角度来学习 vue,当然了解其相关的概念及使用方式足够,但如果是深度用户的话,或多或少会踩到不少框架及底层设计方式带来的不少的坑。比如,我们理所当然的认为,更新了状态,视图层会自动相应的更新,但现实是假如状态中使用到了数组,则我们经常会遇到更新了数组的值后,视图并没有按预期去自动更新, 继续阅读“Vue 是如何进行模板编译的?(一)”

前端mvvm框架底层学习(七、双向绑定优化)

前言

上一篇《前端mvvm框架学习(六、最初级的双向绑定)》介绍了我们如何实现一个简单的MVVM对input输入框进行双向绑定的例子,有个历史遗留的问题,就是更新数据会失去焦点。这一篇我们再来优化之前的双向绑定,怎么简单怎么来吧,我们还是引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧,还是使用模版函数来处理,直接用lodash的template函数,但在这里,我们引入了高级的玩意,我们引入了snabbdom的全家桶,一个最为流行的virtual dom解决方案。 继续阅读“前端mvvm框架底层学习(七、双向绑定优化)”

前端mvvm框架底层学习(六、最初级的双向绑定)

前言

上一篇《前端mvvm框架学习(五、json对象+简单css及style处理)》介绍了我们如何实现一个简单的MVVM处理对象中函样式的处理属性的例子。真实项目中,我们要处理的内容其实不只是css及style样式处理,其他的属性值,如value等,在这一篇中我们来实现对一个input框进行最简单双向绑定,怎么简单怎么来吧,我们还是引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧,还是使用模版函数来处理,直接用lodash的template函数,然后我们给input框绑定oninput的函数来进行反向绑定。 继续阅读“前端mvvm框架底层学习(六、最初级的双向绑定)”

前端mvvm框架底层学习(五、json对象+简单css及style处理)

前言

上一篇《前端mvvm框架学习(四、json对象+数组处理)》介绍了我们如何实现一个简单的MVVM处理内含数组对象数据的例子。真实项目中,我们要处理的内容其实不只是数据,还有css及style样式处理,怎么简单怎么来吧,我们还是引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧,还是使用模版函数来处理,直接用lodash的template函数,然后我们引入了virtual node虚拟节点的概念,专门用来处理后期样式处理。 继续阅读“前端mvvm框架底层学习(五、json对象+简单css及style处理)”

前端mvvm框架底层学习(四、json对象+数组处理)

前言

上一篇《前端mvvm框架学习(三、json对象处理)》介绍了我们如何实现一个最简单的MVVM处理对象数据的例子。但如果要处理的数据是json对象里面包含数组呢?这一篇我们尝试来处理json对象里面包含数组的情况,怎么简单怎么来吧,我们还是引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧,还是使用模版函数来处理,直接用lodash的template函数,但这次我们跟上次有点不一样,需要在模版里面执行javascript来循环生成html。 继续阅读“前端mvvm框架底层学习(四、json对象+数组处理)”

前端mvvm框架底层学习(三、json对象处理)

前言

上一篇《前端mvvm框架学习(二、数组处理)》介绍了我们如何实现一个最简单的MVVM处理数组数据的例子。但如果要处理的数据是一个json对象呢?这一篇我们尝试来处理json对象,怎么简单怎么来吧,我们还是引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧,但本次我们直接高级一点,使用模版处理直接用lodash的template函数继续阅读“前端mvvm框架底层学习(三、json对象处理)”

前端mvvm框架底层学习(二、数组处理)

前言

上一篇《前端mvvm框架学习(一、我们来实现一个最简单的MVVM)》介绍了我们如何实现一个最简单的MVVM。但之前处理过的model数值都只是最原始的数值(即primitive类型,如string,number,symbol,boolean)。这一篇我们尝试来处理数组类型,怎么简单怎么来吧,我们引用lodash库和还是用传统的方式拼接html字符串的方式来处理View层吧。 继续阅读“前端mvvm框架底层学习(二、数组处理)”

前端mvvm框架底层学习(一、我们来实现一个最简单的MVVM)

前言

前端mvvm框架好多,这个概念大家都知道是由后端开发那边传过来的。后端开发最开始是比较经典的MVC框架,当然前端也有MVC框架,比如比较经典的backbone.js就是比较经典的前端MVC框架(都好几年没更新了,估计没啥用户了),后面微软在其前端应用上首次提出了mvvm框架,再到后来我们当前最热的前端框架Vue.js。在这系统的文章中,我们不会由复杂的vue.js着手来学习,我们先由简单的概念开始,一步一个demo来学习前端mvvm到底是什么鬼? 继续阅读“前端mvvm框架底层学习(一、我们来实现一个最简单的MVVM)”