MINA Pages 工作原理 ============================================= MP 在设计阶段,结构和语法严重参考小程序框架 MINA 、VUE,主要目的是降低学习成本,采用大部分前端工程师都熟悉的开发方式(或习惯),用一套技术栈完成 WEB、小程序和移动应用(混合应用)开发。从程序结构和语法上,MP 形似 VUE,几乎与 MINA 一样,但工作原理上与小程序框架 MINA 、VUE 完全不同,具体特性如下: **服务端(预)渲染** 在制作MP的模板时,使用 Gulp 将MP模板、数据读取方式描述等文件,实时提交到服务端 CGI 进行编译。服务端的编译程序,将MP模板翻译成一个PHP程序,并将这个PHP程序保存到数据库,同时缓存到内存中。当通过浏览器访问一个页面时,路由程序首先根据地址信息,在缓存中寻找相匹配的PHP程序,如未找到再从数据库中读取;获取程序代码后,填入参数运行这个程序,输出HTML页面。 MP 模板中使用的变量,条件、列表等,在这个PHP程序运行时候,就已经渲染完成。这一特性对搜索引擎更友好,SEO效果更佳。同时也意味着,MP的模板文件无需上传到云端,修改模板较为方便,云端程序在迁移、分布式部署等场景下更易操作。 **VDOM和数据绑定** MP模板在编译时,会自动集成一个 JS SDK。JSSDK 实现了一套 VDOM 机制,将模板中使用的变量,条件、列表等与VDOM绑定,当JS逻辑层调用 `setdata()` 方法修改变量数值时,通过刷新VDOM的方式,更新页面呈现。也就是说 MP模板在支持 SSR 的同时,又具备 JS逻辑层数据绑定的特性。