家庭网络如何做网站服务器,图案设计制作,付钱做编程题目的网站,自己做网站软件目前完成4篇源码分析文章#xff1a;
MVVM大比拼之knockout.js源码精析MVVM大比拼之avalon.js源码精析MVVM大比拼之vue.js源码精析MVVM大比拼之AngularJS源码精析
分析所关注的点集中在 #xff1a;双工绑定的实现机制、视图编译等几个关键点。建议读者从knockout开始按顺序…目前完成4篇源码分析文章
MVVM大比拼之knockout.js源码精析MVVM大比拼之avalon.js源码精析MVVM大比拼之vue.js源码精析MVVM大比拼之AngularJS源码精析
分析所关注的点集中在 双工绑定的实现机制、视图编译等几个关键点。建议读者从knockout开始按顺序阅读。 关于性能测试vue的作者已经做过了在这里。
之后的文章将关注一下各个框架在repeat指令下的实现。另外准备再深入介绍一下bacon.js从另外一个角度看数据与视图。 zerojs! 造出最好的 CMS 轮子
zerojs是一个基于nodejs、angularjs、git的CMS。在它之上可以继续开发出博客、论坛、wiki等类似的内容管理型系统。
拥抱开发者和社区 层次清晰高度解耦。前后端即使分开也都是完全可独立运行的系统。每一个层次都是用当前业界最流行的工具和方法作为底层对开发者来说几乎无学习成本。模块、主题、套件体系简单成熟二次开发没有坑。
后端架构
zerojs 底层基于 sails。继承了 sails 三大优势
强大的 Model 层。sails实现了自己的ORM接口几乎和 mongoose 完全一致简单易用。配合上社区统一的数据库驱动可完美支持mongo、mysql、redis、postgreSQL等等数据库。ORM封装完善设置可以对单个model指定使用的数据库。为model提供全自动的RESTful接口。实现声明即可用。controller 和 view 完全基于express实现无附加学习成本。
zerojs 的核心层包含了CMS最通用的功能特点有三
内容管理功能强大。zerojs为内容节点,分类与标签等核心概念建立了统一的抽象为继承者统一提供索引、摘要等功能。同时系统仍然非常开放允许开发者声明普通的model然后通过mixin的方式使用部分功能。系统可扩展性高。几乎在每个流程的关键动作处都使用了hook来支持扩展。例如“增、删、改、查”的前前后后。同时在系统操作例如记录统计数据处都采用了选择driver的方式来支持适合开发者的需求。对前端前无古人的友好。原生支持传统模板渲染、前端MVVM框架渲染及混合渲染等多种方式。系统默认提供一整套angular模块包括登陆、注册、节点增删改查等给开发者随意组合使用可实现几乎 0 代码的情况下将前端变成单页应用。工程化问题如静态资源的压缩打包由系统自动根据当前环境完成。
zerojs 的扩展层基于git实现优势
代码安全有保障不会搞挂系统。一键即可在当前开发环境打包自己开发的新功能。无需手动整理。以下是一个基于zerojs打造的博客系统基础模块示意图 前端架构
前面已经提到 zerojs 对前端提供的全部都是标准的 REST 接口并且在 view 的渲染上支持多种方式。意味着前端完全可以自主开发甚至完全抛弃掉服务器端的view层不在同一环境也可以。这里讲的前端架构主要是指zerojs默认提供的angular的前端架构。下面分三个前端最关心的问题来讲
一、如何使用默认前模块
zerojs 为用户、节点、标签、统计等每一个主要功能都提供了一整套完善的angular模块并且都有默认的controller。很多时候例如新增一种节点类型如“日记”开发者需要做的仅仅是非常简单的三步
在后端声明一下这个类型。前端引入文件然后写前端的模板文件就够了。
即使要增加字段都只要写模板就够了。默认模块已经经过了各种场景的锤炼功能非常完善。如果你真是遇到非常特别一定要自己手动处理的地方那你仍然可以大量复用默认模块的service、filter等等。几乎所有功能都被封装到了service里。 非常值得注意的时这些默认模块和zerojs的后端没有任何耦合这意味着即使你要完全换成自己的后端只要接口标准那么这些模块也都是可用的。
二、如何处理预加载的数据
在做单页应用的时候常常为了节省请求、加速第一屏显示速度而把让服务器端提前把一些数据直接渲染在页面上例如当前用户的基本信息第一屏数据等。zerojs在处理view的时候遇到渲染单个节点、渲染节点列表都会默认将节点内容直接渲染到页面上在angular中引入系统默认提供的preload模块即可获取到这些数据。不过仍然不用太操心系统提供的节点增删改查、列表渲染、单个节点渲染等默认angular模块都已经自动支持使用preload数据了。开发者还是只要正常写模板就好。
三、前端脚本的模块依赖、打包压缩等如何处理
这些问题都是工程问题zerojs在生产环境会分析模板然后统一打包再注入到模板中。未来在view层可能会推出CDN模块对前端更友好 下面是一个基于zerojs打造的博客系统当然毫不客气地说要成为博客中的王者。
http://www.cnblogs.com/sskyy/p/3918299.html