一、简介

ferrous-framework是为了迎合微服务架构而封装的纯前端开发框架。

数据驱动为核心理念,实现了一种介于单页面和多页面的开发模式,让大家根据自己的需要对单页面和多页面进行切换或者共存。

页面结构采用JCP(Javascript Client Page)模式,可以很好得对前端页面进行逻辑抽象和组装。

二、何为JCP(Javascript Client Page)模式?

这个词语的解释详见http://www.yomho.net/2017/09/04/javascript-client-page-mode/

此文还包含了JCP模式的架构图。

下面代码为JCP文件的配置规范样例

define(function (require) {
return {
metadata: {
get: function () {
return {
title: '登录'
}
}
},
jcp: {
js: [
{
getJOM: function () {
return require('page/login/controller/loginController');
}
}
],
html: {
layout: {
getDOM: function () {
return require('text!page/login/view/layout.html');
}
}
}
}
};
});

三、技术整合

1、jquery+jquery-ui;

2、requirejs(为页面功能的组装、压缩和合并提供支持);

3、backbone(实现了hash路由);

四、框架特性和封装理念

1、JCP(Javascript Client Page)模式,让您可以更好地规划系统子功能的业务实现 ,更大限度地重用代码;

2、不过度封装,对window对象无污染,方便集成各种框架;

3、深知单页面和多页面的优势,并可以让大家根据项目的特点进行选择或混合;

4、初步写了API开发样例(表单、缓存、认证),让大家可以根据自己的设计依葫芦画瓢设计其他的API;

5、一个页面功能一个目录,让子功能可以更好地的打包和管理;

6、。。。等你们发现

五、框架缺陷

对SEO支持不是很好,这是单页面模式的通病,如果需要SEO,请设计好hash值以迎合搜索引擎。

不过对于需要SEO的企业网站,还是建议采用传统的开发模式,让数据从后端与视图模板混合。

六、github地址

https://github.com/yomho/ferrous-framework

涵盖功能:登录+主界面+登录/主界面认证自动跳转

测试账号/密码:admin/123456

如何运行?部署站点后打开index.html即可,这是整个web程序的容器,同时也是整个web站点的入口。

对于单页面来说只有这一个容器。

对于多页面来说也可能只有这一个容器(当然也可以存在多个容器)--这也是用一个容器实现多页面需求的一个闪光点。

如果使用过程中有什么好建议,你们懂的。

总结和后续

最近一两年,一直从事微服务架构的前端框架的研发和项目的开发,发现目前流行的前端开发框架都不是很好用。

一些双向绑定的框架对window对象污染太严重,这对单页面模式是不友好的,容易造成其他问题(对象和变量释放不及时,再次占用内存过多)。

单页面模式不太适合SEO,但是非常适合前端资源的版本管理;

单页面模式让前端的发布更加轻松,而且开发的时候,还可以让开发人员把注意力集中在子功能的业务上。

后续将会继续抽空完善整个框架的技术整合和demo封装,请大家关注ferrous-framework。

【JCP模式实战--ferrous-framework】ferrous前端开发框架邀您初体验的更多相关文章

  1. 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...

  2. 前端工业化工具Gulp初体验

    1. 全局安装 gulp: npm install --global gulp 2.在项目目录下,用以下命令创建一个基本的package.json文件 npm init 3.安装Gulp npm in ...

  3. 前端工业化工具Grunt初体验

    今天来学学Grunt~~目的是为了自动化!自动压缩...自动修复...自动合并等... 提示:Grunt基于Node.js,安装之前要先安装Node.js 1.安装 grunt-cli npm ins ...

  4. Java多线程编程模式实战指南:Active Object模式(上)

    Active Object模式简介 Active Object模式是一种异步编程模式.它通过对方法的调用与方法的执行进行解耦来提高并发性.若以任务的概念来说,Active Object模式的核心则是它 ...

  5. Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页

    前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...

  6. Java多线程编程模式实战指南一:Active Object模式(上)

    Active Object模式简介 Active Object模式是一种异步编程模式.它通过对方法的调用与方法的执行进行解耦来提高并发性.若以任务的概念来说,Active Object模式的核心则是它 ...

  7. 腾讯Web前端开发框架JX(Javascript eXtension tools)

    转自:Web前端开发-Web前端工程师 » 腾讯Web前端开发框架JX(Javascript eXtension tools) JX – Javascript eXtension tools 一个类似 ...

  8. Java多线程编程模式实战指南(一):Active Object模式--转载

    本文由黄文海首次发布在infoq中文站上:http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-obj ...

  9. Web前端开发框架大全-详述

    可以说,前端技术的发展是互联网自身发展的一个缩影! 前端技术的发展经历了web1.0时代,即网页只能展示信息,几乎没有交互可言: web2.0时代,web2.0不再是单维的,逐渐发展为双向交流,另一特 ...

随机推荐

  1. Android学习笔记-绘制圆形ImageView实例

    现在很多的APP都很喜欢圆形的头像,这里就简单的写个圆形的ImageView~ 第三方圆形ImageView控件: RoundedImageView CircleImageView 实现代码: 自定义 ...

  2. IBM Websphere 集群会话共享问题解决办法

    遇到一应用部署环境如下图: 两台HTTP SERVER(以下简称IHS)负责转发数据包,其中F5采用粘性模式,即一个用户在会话周期内的数据包一定会被转发到IHS中的一台, 但IHS 到Web Serv ...

  3. KNN算法--python实现

    邻近算法 或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...

  4. Round #427 A. Key races(Div.2)

      time limit per test 1 second memory limit per test 256 megabytes input standard input output stand ...

  5. 26. leetcode 350. Intersection of Two Arrays II

    350. Intersection of Two Arrays II Given two arrays, write a function to compute their intersection. ...

  6. nopCommerce 3.9 大波浪系列 之 微信公众平台登录插件

    一.简介 插件源码下载:点击下载 微信公众平台网站授权帮助地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 ...

  7. spring boot admin

    这里记录一个spring cloud的模板,有的模块spring cloud eureka + spring boot admin + spring cloud zuul + 一个普通spring c ...

  8. 使用struct模块从定宽数据文件导入数据

  9. MySQL触发器学习

    简介 MySQL从5.0.2版本开始支持触发器的功能.触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合. 创建触发器 语法: CREATE TRIGGER trigge ...

  10. Hadoop集群环境搭建(一)

    1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataN ...