如果笔记

如果笔记

做有价值的技术笔记

浅谈Vue与PWA的联想

个人认为Vue离PWA还差一个“渐进式数据模型”

> 最近跟人探讨Vue的优缺点,被问到“你是否想过在以后某种动机下写一个类似Vue这样的框架”,一向热衷造轮子的我,突然有点不知所措。Vue现在这么大热,好像不会Vue就不是一个前端人一样,所以还真没想过重造它的轮子。但是,前端的进化是残酷的,曾经太多红极一时的框架,如今也风光不在。每个框架都有自己所处历史阶段的使命吧。 温习一下Vue的核心定位:“Vue 是一套用于**构建用户界面的渐进式框架**。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。**Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合**。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。” 我个人目前对Vue的这个定位非常赞赏,核心库只做该做的事,其他的都交由第三方库和既有项目去做。 近两年前端有个新词——PWA(Progressive Web App,渐进式网页应用)。PWA是一种理念,使用多种技术来增强Web App的功能,可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送。PWA仍然是网站,只是在缓存、通知、后台功能等方面表现更好。 Vue是**渐进式用户界面**,PWA是**渐进式网页应用**,显然PWA包含了Vue。 那么我就开始联想了,如果把PWA设计成MV(Model View)模式,则Vue就是`View`,`Model`呢?所以我大胆地猜想,接下来出现的前端新框架中,很可能有“渐进式数据模型”! 为什么PWA不应该是MVC(Model View Controller)模式?因为渐进式的View和Model,已经包含了Controller,或者说Controller已经被分解到View和Model里面了。 再回来说说“渐进式数据模型”的必要性。“PWA在缓存、通知、后台功能等方面表现更好”,缓存即缓存数据,通知即实时接口数据,后台功能即数据计算,这些都是Model要干的事。其实Vuex也算是一个Model,但它只是针对多组件状态同步的Model。Vue的`keep-alive`也是做缓存相关的事,但并不是太完善(这应该跟Vue的定位有关,除“界面”外它只做最基础的功能?)。 所以,个人认为Vue离PWA还差一个“渐进式数据模型”。 爱造轮子的人们,造起来吧! 【本文仅代表个人观点,如有错误和不服,请留言讨论】

前端

hahaboy