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

前言

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

Vue中使用渲染函数render实现无限节点的树

前言

我们在Vue的官方文档其中一节渲染函数 & JSX中有这么一句话:『Vue 推荐在绝大多数情况下使用模板来创建你的 HTML。然而在一些场景中,你真的需要 JavaScript 的完全编程的能力。这时你可以用渲染函数,它比模板更接近编译器。』,在实际项目中还真的遇到过一些使用模板解决不了的问题,如要生成一棵无限的Dom树,或者生成无限层级的菜单等情况。 继续阅读“Vue中使用渲染函数render实现无限节点的树”

对每周十道前端大厂面试题中题目深度解答

前言

无意中浏览到了这样的一个repo,叫《每周十道前端大厂面试题》(https://github.com/airuikun/Weekly-FE-Interview),看到里面其中的一些题目觉得挺有意思,就深度解答一下 继续阅读“对每周十道前端大厂面试题中题目深度解答”

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框架底层学习(二、数组处理)”