前端模块与CMS结合

在《FIS官方技术群》经常看到一些讨论,这次是 前端组件化与CMS的相关讨论,主要观点来自群里 漂流瓶(张云龙前辈)。

CMS是运营人员直接操作,我们往往需求各种各样的界面,需要前端手动拼接开发,当然这是传统方式。
现在的新的组件化开发可以改变这个模式,让运营人员可以直接拼装页面.

与此讨论相关的PDF 《UC前端工程实践》 自行解决

前言:

《UC前端工程实践》,目前已经实现的:

  1. 模块化开发
  2. 组件化开发(初步探索)
  3. 模块生态建立
  4. 多版本并存(灰度发布)
  5. 持续集成全流程
  6. cms项目模块化开发及运营
    scrat-webapp模块化开发体系

大概模式:
就是建立一个普通的前端模块化工程,然后本地开发项目,用fis构建的时候把工程切割成cms碎片并打成一个压缩包,把压缩包上传到cms中,cms把所有碎片直接放到模板库,把静态资源推送到cdn。然后运营就可以在cms里组装了。

前端工程师本地开发,运营在cms上组装页面,连接本地工程和cms系统的,就是构建

问题

  1. 一直以来,cms系统设计没有考虑过模板开发的工程问题,在cms系统里维护那些碎片是非常痛苦的,而且一旦把开发好的前端项目“cms碎片化”之后,基本上就不能再升级维护了,预览什么的也都要依赖cms系统。(相信大家都理解这种痛苦)

新的方式(这里需要一个cms拥有这种功能 图片均来自uc方面):

  1. 拆分前端组件(下图),将其变成一个一个模块,例如(banner模块,新闻列表模块,广告模块)
    1.前端组件:该图片展示的是一个cms项目的前端组件
  2. 运营人员组装: 假设有一个新的页面(下图),我们将该页面划分为几个不同的模块区域
  3. 开始组装:
    1. 页面模块选择
    2. 数据编辑

      编辑之后,前端会把数据和工程中模块的模板渲染在一起得到html保存起来。这部分数据是编辑维护的

    3. 条件树,用于针对不同设备
  4. 把前端解放出来之后,可以在本地开发多一些模块推到cms上,后面编辑就自己拼装去吧

前端开发模式细节

一套模块开发体系 。
一个构建打包工具 。
一个对应模式CMS发布编辑系统 。

  1. 模块开发体系
    例如:scrat components ploymer

    开发模块是独立的,可引入另外一模块,是可组合可拆分可更换的单元。
    例如 header模块:

    一个模块一个目录
    像写nodejs一样写js模块
    将模板嵌入到js中
    css只关心模块内样式
    css也有依赖关系
    相对路径引用资源
    饮用模块即加载所有资源

  2. 构建打包工具

    资源内嵌
    资源加载
    依赖管理
    性能优化
    开发调试

前端模块与CMS结合的更多相关文章

  1. webpack前言:前端模块系统的演进

    前端开发和其他开发工作的主要区别,首先是前端是基于多语言.多层次的编码和组织工作,其次前端产品的交付是基于浏览器,这些资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源 ...

  2. webpack前端模块打包器

    webpack前端模块打包器 学习网址: https://doc.webpack-china.org/concepts/ http://www.runoob.com/w3cnote/webpack-t ...

  3. 理解前端模块概念:CommonJs与ES6Module

    前言 现代前端开发每时每刻都和模块打交道.例如,在项目中引入一个插件,或者实现一个供全局使用组件的JS文件.这些都可以称为模块. 在设计程序结构时,不可能把所有代码都放在一起.更为友好的组织方式时按照 ...

  4. JS模块规范 前端模块管理器

    一:JS模块规范(为了将js文件像java类一样被import和使用而定义为模块, 组织js文件,实现良好的文件层次结构.调用结构) A:CommonJS就是为JS的表现来制定规范,因为js没有模块的 ...

  5. 嗨分享-前端技术-帝国CMS手机站修改列表分页(sysShowListMorePage)

    http://bbs.phome.net/showthread-31-318753-0.html 如果你的网站使用的是帝国CMS.PC站和手机站各使用一个模板组,但共同使用一个数据库.那么你的PC站和 ...

  6. [JavaScript] 前端模块编程实现

    前端模块化 前端早期写代码都是全局变量满天飞,这种情况会造成全局命名空间污染,变量冲突等问题 var a = 1; var b = 2; function c(){} function d(){} 后 ...

  7. webpack前端模块加载工具

    最近在看许多React的资料,发现了大部分的项目都是用webpack行模块化管理的工具.这次也是借着写了一个React-Todos的小应用,对webPack最基本实用的功能体验了一番,顺带做个小记录. ...

  8. Web 前端模块出现的原因,以及 Node.js 中的模块

    模块出现原因 简单概述 随着 Web 2.0 时代的到来,JavaScript 不再是以前的小脚本程序了,它在前端担任了更多的职责,也逐渐地被广泛运用在了更加复杂的应用开发的级别上. 但是 JavaS ...

  9. 冗余代码都走开——前端模块打包利器 Rollup.js 入门

    之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化. 殊不知在 webpack 1.X 版本是无法利用该特性来避免引 ...

随机推荐

  1. css案例学习之并集选择器

    代码 <html> <head> <title>并集选择器</title> <style type="text/css"> ...

  2. warning C4133: “函数”: 从“char [5]”到“LPCWSTR”的类型不兼容

    弹窗打开一个网页,但是报错,代码如下: #include <stdio.h> #include <windows.h> void main() { ShellExecute(, ...

  3. 新浪云-PHP实现上传原图,缩略图

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...

  4. EC读书笔记系列之5:条款9、条款10

    条款9 绝不在构造和析构过程中调用virtual函数 记住: ★在构造和析构期间不要调用virtual函数,∵这类调用从不下降至derived class ---------------------- ...

  5. 在网页中使用javascript提供反馈信息

    一,使用document.write() 二,使用window方法,prompt(),alert()和confirm()   <html lang="en"> < ...

  6. oc swift 混编 特技

    1.swift 工程新建oc文件,新建的时候提示是否桥接文件,点击yes,把swift要用的oc文件的头文件 都导入桥接文件中就OK了. 2.在swift工程中oc调用 swift文件,需要在导入名字 ...

  7. Makefile写法

    概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...

  8. C/C++招聘的一些感受和经验【转】

    找工作本人认为最重要的就是前期准备了.     首先.简历一定要写的切合主题.招聘单位要的是你的技能,这个只要大概能符合就可以,关键他们需要的是你的开发经验,一定要在简历中完美的体现出你之前所参与的项 ...

  9. Codis集群的搭建

    Codis集群的搭建与使用   一.简介 Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表 ...

  10. 关于调用约定(cdecl、fastcall、、thiscall) 的一点知识(用汇编来解释)good

    函数调用规范   当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个.什么样的参数.即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者 ...