一: 前端部分

1. 架构图

2. 原由

去年疫情期间在家没事, 想着写一个商城项目沉淀一下自己这些年所学的知识. 经过了一年多的反复改版, 优化, 最终做成了现在这样一个有衡量标准的东西.

这期间走过很多弯路, 做了很多无用功. 想着做一个总结, 加深一下记忆. 也希望能帮助到大家.

3. 开发目标

我们想做一个东西出来, 最开始肯定有自己的想法: 这些个商城项目都是啥玩意儿, 这么复杂, 调用链这么长, 让人怎么调试, 怎么二次开发......

随着深入, 你会慢慢的就总结出一些规律: 做一个xx项目, 至少应该有xxx这些特点, 才能算的上是好东西;

最后由这些应该有的特点反推出一个项目的整体设计方案

特点 说明 举例
代码量少/代码可复用 前端尽量通过js组件自动生成

1. 通过js插件+json数据生成完整的HTML代码,

2. 每个子页面模板中只写入占位标签, 加载后, 通过js替换占位标签

(但这样可能不利于SEO)

3. js插件尽可能自带模板和css, 并保证不重复加载css

前端请求也要有缓存

根据不同场景缓存后端返回的结果

1. 将请求参数与返回结果缓存下来

2. 可以自由指定缓存时间

(比如管理后台一些数据就不需要缓存, 需要立马看到编辑后的结果)

子页面要方便管理

每个子页面是一个单独的模板,

而不是一大堆塞到body标签中

1. 将子页面分开成一个个模板, 放在template标签中

2. 通过路由器,将模板内容加载到主显示区域

支持随时刷新

不管当前在哪个子页面,

如果用户刷新, 刷新后还是当前页面

1. 后端要做成单入口页面, 具体显示哪个子页面交由前端去控制

2. 前端路由根据当前的URL去加载子页面

按需加载 页面中需要哪些插件, 就加载哪些 js插件可以单独引入
支持钩子

比如管理后台,

每次请求接口前都能够自动调用判断是否登录的方法

非侵入式 HTML标签中尽量少的写入非标属性(例如: v-for, v-if)

1. 通过js工具(循环)渲染HTML模板,

2. 此js工具中有回调方法,支持对数据做二次加工

3. 此js工具可以渲染有嵌套的HTML模板

4. 模板中写入数据占位符即可

定制数据结构 根据不同需求, 返回统一模块的不同字段

1. 比如, 请求参数中有一个是 model:'goods_info_base'

那么后端会返回一个商品的几个基本字段, 并不会把商品的所有字段多返回

2. 需要后端支持

接口规范管理 请求的接口有尽量少, 而且有规律可循(方便管理)

1. 获取单条记录: /get_one_<模块名>_<模块ID>

2. 获取多条记录: /get_list_<模块名>

3. 更改一条记录: /update_one_<模块名>_<模块ID>_<字段>

4. 前端接口统一了, 对后端来说数据校验就稍微麻烦一些

二. 后端部分

未完待续...

H5单页面应用(SPA)架构总结相关推荐

  1. 单页面应用(SPA)前端路由hash 模式 VS history 模式

    文章目录 单页面应用(SPA) 前端路由的由来 前端路由 hash 模式 history 模式 hash.history优缺点 单页面应用(SPA) 简单的说 SPA 就是一个WEB项目只有一个 HT ...

  2. 使用Vue.js在WordPress中创建单页面应用SPA

    吐槽一下,掘金好像并不能插入gist的代码框 效果有点打折扣 博客原文地址里有gist代码: 使用Vue.js在WordPress中创建单页面应用SPA 英文原文地址:premium.wpmudev. ...

  3. 单页面应用SPA的优缺点

    单页面应用SPA的优缺点

  4. 一种SPA(单页面应用)架构

    (如果对SPA概念不清楚的同学可以先自行了解相关概念) 平时喜欢做点小页面来玩玩,并且一直采用单页面应用(Single Page Application)的方式来进行开发.这种开发方式是在之前一年做的 ...

  5. 详细解剖大型H5单页面应用的核心技术点

    阐述下项目 Xut.js 开发中一个比较核心的优化技术点,这是一套平台代码,并非某一个插件功能或者框架可以直接拿来使用,核心代码大概是6万行左右(不包含任何插件) .这也并非一个开源项目,不能商业使用 ...

  6. H5中的history单页面,手动实现单页面开发,细说h5单页面原理

    就目前来看,前端的单页面开发占了很大一部分,一方面无刷新的切换增强了体验,并且浏览器记录依然存在,前进后退都没问题,在之前我们通地址栏中的hash改变来触发onhashchange方法来实现单页面应用 ...

  7. 单页面应用——SPA

    单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用. 它将所有的活动局限于一个web页面中,仅在该web页面初始化时加载相应的HTML. ...

  8. html打包apk指定参数,uni-app 打包 H5 单页面应用 渠道参数的传递和获取 如: index.html?channelid=icefrog...

    业务前景: 采用uni-app开发的项目 发型打包生成 H5-手机版 单页面应用 打包出来的总入口页面是index.html 业务需求: 在外界直接打开index.html 总入口页面时需要传递参数及 ...

  9. 前端单页面(SPA)和多页面(MPA)

    了解单页面和多页面应用程序 单页面和多页面 SPA:( Single Page Application ) 单页面应用程序,例如:后台管理系统,整个应用中只有一个页面(index.html) MPA ...

最新文章

  1. Linux下取代top的进程管理工具 htop
  2. day22 time模块
  3. PhotoGun中文版
  4. WebKit 分析–for android
  5. jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
  6. sql查询结果字段名与字段值倒过来了
  7. Django的核心思想ORM
  8. 国内最火5款Java微服务开源项目
  9. 开源中国WP7客户端全面开源,包括iPhone客户端与Android
  10. 利用 html 和 css 实现导航栏下拉(display block、display none)
  11. 初学C++——VS2013开发工具包下载及破解
  12. 快速理解Java的三种代理模式
  13. java毕业设计基于javaweb+mysql数据库实现的在线学习网站|在线课堂含论文+开题报告
  14. NR R15中的TypeII CSI-Codebook量化反馈
  15. 2010第六届中国移动互联网TOP50
  16. MySQL死锁分析与解决之路
  17. Python实用模块
  18. XMind教程详解之畅通使用
  19. 【论文分享】Relation-Aware Graph Attention Network for Visual Question Answering
  20. 计算机三级网络题,计算机三级网络试题及答案解析

热门文章

  1. 三国佚事——巴蜀之危
  2. OpenCV---calcHist函数说明
  3. 苹果se2_苹果SE2会在26号发布吗?如果定价在4000+,你会入手吗?
  4. The new features of OSX 10.11 and Xcode 7
  5. Excel VS Python 第三期——重复值处理
  6. 简述HTTP请求过程
  7. RT-Thread 邮箱(学习笔记)
  8. 会计信息质量可靠性的案例_关于会计信息质量八大质量要求及其重要例子有哪些?...
  9. 节约用水|减少零用,保护环境
  10. 计算机睡眠但不关闭网络,win7电脑睡眠不关闭网络技巧分享