前端系统设计

前端系统设计

前端三大件:html、css、js,万变不离其中,不管我们使用的是vue、react、angular还是其他什么,都是要提高我们代码的复用性、可读性、可维护性以及可拓展性。

html

  • 语义化的标签,在不借助任何前端框架的情况下,

    <header>
        <section>
          <nav>
            <ul>
              <li>
                <a href="#">
                  菜单1
                </a>
              </li>
              <li>
                <a href="#">
                  菜单2
                </a>
              </li>
            </ul>
          </nav>
        </section>
      </header>
    

    这种方式能有一定的可读性,但在更为复杂的页面的结构之下是不是缺失了可读性和可维护性。

  • 组件化控制html结构,运用组件化架构的方式将一个页面划分为多个组件,包括项目级组件(在整个范围都会使用到的)和页面级组件

在这里插入图片描述

组件化的优势点:

  1. 提高复用性

    举例:按钮组件,整个系统的按钮风格应该大致差不错,拥有的行为也差不多。我们将按钮单独抽离出来作为一个单独的组件,它拥有自己独立的结构、样式、行为,遵从单一职责、开闭原则,当我们在构建下一个页面的时候,直接引入既可以使用,达到了提高复用性的效果。

  2. 提高可读性

    举例:我们一个页面有很多的内容,以上图来看,我们这个页面的结构大致是,头部,导航栏,搜索框,按钮组,而每一个部分又涵盖更细小的点位,在到这个页面的时候,我们的html结构就清晰明了,是由哪几部分组成的,这样同时避免了我们的页面行数过多的问题,内容简小精炼。

  3. 提高可维护性

    举例:每一个组件之间的关联关系很弱,基本一个独立的,那我们对一个组件的修改只会对这个组件起效果,不会太多的影响到其他组件。再者,当我们接收到新的需求改动的时候,产品说我们的input、select不好看,换一种风格,由于我们的所有表单元素都是引用的我们自己的组件,那么我们只需要对我们当前的input和选择框组件进行修改,在进行一些细微的调整,就可以快速的响应。

css

  • 分离结构和外观

    一个样式在确定这一块内容的结构,什么样的布局,一个样子控制它的外观。达到外观的复用性

    <div class="toggle toggle-simple">
        <div class="toggle-control toggle-control-active">
        <h2 class="toggle-title">标题3</h2>
        </div>
        
        <div class="toggle-details toggle-details-active">
            ...
        </div>
        ...
    </div>
    

    例子的toggle就是控制结构的,toggle-simple就是控制外观的,

  • 分离容器和内容

    用一个样式类来控制这个容器的样式,不管你用div还是h1她的外观都不变。

    上例的toggle-title样式类就是控制容器样式的,内容不变。在需要同样样式的地方加入toggle-title可以达到样式的复用。

js

  • 分层思想

    借鉴于后端mvc分层结构,将请求接口拿到数据这个流程分解为三个步骤,一个是service(对应C)作为服务。也就是专门处理服务调用的js,一个是models(对应M),对拿到的数据做处理,最后一个是pages(对应V),根据数据渲染出我们想要的页面。

  • 抽取共用函数

  searchASNItems(condition = {}) {
        const {
            form: { validateFields }, route: { categoryCode }, dispatch, pagingCondition,
        } = this.props;
        validateFields((err, values) => {
            const payload = {
                ...pagingCondition,
                categoryCode,
                status: 'APPROVED',
                ...values,
                ...condition,
            };
            dispatch({
                type: 'sourceASNSimple/searchASNForINRequirement',
                payload,
            });
        });
    }

    // 分页查询项次列表
    currentPageChange = pageIndex => {
        const { pagingCondition } = this.props;
        this.searchASNItems({
            ...pagingCondition,
            pageIndex,
        });
    };

    // 分页查询项次列表
    onShowSizeChange = (pageIndex, pageSize) => {
        const { pagingCondition } = this.props;
        this.searchASNItems({
            ...pagingCondition,
            pageIndex,
            pageSize,
        });
    };

    // 分页查询项次列表
    onSubmit = (e) => {
        e.preventDefault();
        const { pagingCondition } = this.props;
        this.searchASNItems({
            ...pagingCondition,
            pageIndex: 1,
        });
    };

    // 点击一行弹出该asn的项次对话框
    showLine=(record, index) => {
        return {
            onClick: (e) => {
                this.setState({
                    ASNLineVisible: true,
                    asnDetail: record,
                });
            },
        };
    }

    // 点击asn单号显示asn详情
    showDetailModal=(record, e) => {
        e.stopPropagation();
        this.setState({
            ASNDetailVisible: true,
            asnDetail: record,
        });
    }
目录 1. 介绍 5 1.1 项目概述 5 1.2 范围 5 1.3 参考 5 2. 用例视图 6 2.1 WAS - SAP R/3 集成用例 6 2.1.1 车辆列表功能 6 2.1.2 车辆订购申请单的创建功能 7 2.1.3 车辆订购申请单查询功能 7 2.1.4 车辆订购申请单的修改功能 7 2.1.5 索赔单的创建 8 2.1.6 数据交换需求 8 2.2 PORTAL集成的用例 8 2.2.1 经销商 Portal 框架 9 2.2.2 车辆销售系统和Portal的整合 9 2.2.3 Nadcon system 和Portal系统的整合 10 2.2.4 车辆销售系统和Nadcon 的整合 10 3. 逻辑视图 10 3.1 兼容性 10 3.2 系统架构 10 3.2.1 逻辑架构 10 3.2.2 Web 应用的包设计 12 3.3 组件设计 - J2EE WEB APPLICATION 13 3.3.1 MVC 框架 – Struts 13 3.3.2 日志 14 3.3.3 BAPI代理结构 15 3.3.4 销售商用户信息组件和安全组件 16 3.3.5 页面表现框架 17 3.3.6 车辆列表功能 18 3.3.7 车辆订购请求单创建 24 3.3.8 车辆订购申请单查询列表 32 3.3.9 车辆订购申 请单修改 37 3.3.10 索赔单创建 43 3.3.11 数据交换 50 3.3.12 登录 & 退出 53 4. 数据视图 56 4.1 车辆列一表 57 4.2 车辆订购申请单创建 58 4.3 车辆订购申请单列表 59 4.4 车辆订购申请单修改 60 4.5 索赔单创建 61 5. 实现视图 62 5.1 缓存策略 62 5.2 会话管理 62 5.3 连接管理 62 5.4 集成的需要 62 5.4.1 WAS – SAP 集成 63 5.4.2 单点登陆 63 5.4.3 Vehicle Sale 系统 和 Nadcon的集成 63 6. 部署视图 64 6.1 安装需求 64 6.1.1 服务器的安装 64 6.2 服务支持的考虑 64 6.2.1 安全 64 6.2.2 服务器管理 64 7. 实现环境视图 64 7.1 开发环境 64 7.2 测试环境 64 7.3 生产环境 65 7.3.1 网络 65 7.4 域信息 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值