• 前端项目开发流程(转载)


     

    当前分为以下四个阶段

    第一阶段

    库/框架选型(暂定react)

    第二阶段

    简单构建优化

    NPM管理包

    node+webpack打包

    第三阶段

    JS、CSS模块化开发

    第四阶段

    组件化开发

    开发过程当中注意:前端安全XSS CSRF攻击等 后期文章中将讲述如何处理

    尽管web应用复杂程序与日俱增,用户对其前端界面也提出更高的要求,但时至今日仍然没有多少前端开发者会从软件工程的解度去思考前端开发,来助力团队的开发效率,以下我们使用以上说明的四个阶段来完成基本的前端项目开发流程及技术选型

    第一阶段:库/框架选型

    使用react框架实现,基本上现在没有人完全从0开始做网站了。React框架,解放了不少生产力,合理的技术选型可以为项目节省许多工程量这点毋庸置疑。

    React特点

    1 声明式设计—React采用声明范式,可以轻松描述应用

    2高效—React通过对DOM的模拟,最大限度地减少与DOM的交互

    3灵活—React可以与已知的库或框架很好的配合

    4 JSX —JSX是javascript语法的扩展,React开发不一定使用JSX,但我们建议使用它

    5组件—通过React构建组件,使用代码更加容易得到复用,能够很好的应用在大项目的开发中。

    6单向响应的数据流—React实现单向响应的数据,从而减少重复代码,这也是它为什么比传统的数据绑定更简单

    React单向数据流:在React中,数据的流向是单向的—从父节点传递到子节点。因为组件是简单而且易于把握的,他们只需要从父节点获取props渲染即可,如果顶层组件的某个prop改变了,React会递归的向在便利整个组件树,重新渲染所以使用这个属性的组件

    第二阶段:简单构建优化

    由于我们当前技术选择为react解决了开发效率问题 ,但是必须要兼顾运行性能。前端工程进行到第二阶段我们将选一种构建工具,对代码进行压缩、校验,之后再以页面为单位进行简单的资源合并。

    构建工具

    node :5.0.0+

    npm: 3.0.0

    webpack :^2.3.2

    react :^15.5.4

    react-dom :^15.5.4

    react-router:^2+暂时不使用3.0+因为3.0以上版本路由写法完全不同

    至于其它插件将在项目中体现

    第三阶段JS/CSS模块化

    JS模块化—JS模块化方案很多如AMD/CommonJS/ES6 Module

    我们当前使用webpack按需加载react

    reqiure.ensure

    基本使用

    require.ensure(dependencies,callback,chunkName)

    例如

    const Index=(nextState,cb)=>{

    require.ensure([],require=>{

    cb(null,require(‘../pages/index/Index’).default)

    },’Index’)

    }

    在路由中使用getComponent

    CSS模块化:使用less。具体说明将在第四阶段组件化中详细说明

    第四阶段:组件化开发与资源管理

    1组件化开发

    组件分开发是非常重要的工程优手段。也是react开发必备技能。前端光有JS/CSS的模块化还是不够的。对于UI组件同样迫切的需求

    前端组件化开发理念:

    如上图所示这就是前端组件开发理念,下面我们来总结一下

    1、页面上的每个独立的可视。可交互区域视为作一个组件;

    2、每个组件对应一个工程目录,组件所需的各种资源(JS、Image、CSS)都在这个目录下就近维护;

    3、由于组件具有独立性,因此组件与组件之间可以,自由组合;

    4、页面只不过是组件的容器,负责组合组件形成功能完整的界面;

    5、当不需要某个组件或者想要替换组件时,可以整个目录删除/替换

    注:每二项中就近维护原则是工程化的体现。每个开发者都清楚知道,自己所开发维护的功能模块。因为代码必须存在于对应的组件目录,当前目录包函 CSS、JS、HTML、Image

    结合前端提到模块化开发。我们将划分为几种开发概念

    名称

    说明

    示例

    JS模块

    算法和数据单元

    网络请求(Ajax.js)

    应用配置(config)

    接口(API.js)

    工具函数(utils.js)

    CSS模块

    功能性样式单元

    栅格系统(grid.less)

    字体图标或小图标(icon.less)

    首页样式(inex.less)

    UI组件

    可视/可交互功能单元

    页头(common/header.html)

    页尾(common/footer.html)

    导航(common/nav.html)

    页面

    UI组件容器

    首页(index)

    列表页(list)

    会员中心(youraccount)

     

    根据上述描述我们将构造一个项目的基本流程

    项目初期前端静态页面只包函CSS、HTML

    目录名称:frontEnd

    less文件结构对应生成css文件

    名称

    说明

    common

    公共模块

      var.less

    全局变量

      reset.less

    统一所有浏览器默认样式

      base.less

    全局基础样式

      header.less

    头部样式

      dialog.less

    提示框

      form.less

    表单 input textarea checkbox radio

      btn.less

    按钮

      nav.less

    导航

      search.less

    搜索

      pagination.less

    分页

    model

    对应网站模块

      product

    产品列表与产品详情

      Home

    首页

      signin

    登录与注册

      single

    单页应用

      youraccout

    会员中心(当前文件夹可根据复杂程度再进行划分文件夹)

    按照上述描将形成如下文件结构

     

    接下将是前端使用react组件化重点

     

    -------------------------------------

    基于vue前端框架的项目也类似。

    基于他人vue项目的二次开发: vue-element-admin  

    https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能

    再一次降低了工作复杂度,是后端也能快速变前端。

     

  • 相关阅读:
    如何让你的网站排名靠前
    经典ASP代码大集合
    防刷新重复提交、防后退方法
    ASP.NET中数据库数据导入Excel并打印
    制作网页过程中经常要用到的代码
    在ASP.NET中使用Microsoft Word文档
    document对象详解
    用XP做服务器突破iis10人限制
    自动选择网通电信服务器
    PHP笔记——获取文件扩展名
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/11814004.html
Copyright © 2020-2023  润新知