实战模拟京东金融
- 组件化缺乏方法论
- 组件化设计不合理,项目难以把控
- 组件化的敏捷度,复用性体现不足
- 构建工具(将浏览器不支持的转化为浏览器支持的)
- 构建工具:gulp grunt webpack fis prepack
- 为什么要构建工具:资源压缩 静态资源替换 模块化处理 编译处理
- MVVM框架选择
- 模块化设计
- css模块化设计(继承,重用)
- js模块化设计
- 自适应方案设计
- js+css
- 代码维护及复用性设计的思考
- 需求变更后,代码的处理(解耦)
- 产品迭代
- Bug定位
- 新功能开发
- 设计原则
- 可复用能继承要完整
- 周期性迭代
- 设计方法
- 先整体后部分再颗粒化(布局-》页面-》功能-》业务)
- 先抽象再具体(将看上去不一样的抽象成一个统一的模块,通过隐藏变量配置实现)
- 设计原则
- 高内聚,低耦合(具体交互要封装到组件本身,不要被其他组件所控制。)
- 周期性迭代
- 设计方法
- 先整体后部分再颗粒化
- 尽可能抽象
- 基础概念
- css像素,设备像素,逻辑像素,设备像素比参考
- viewport
- rem(相对于根元素)
- 工作原理
- 利用viewport和设备像素比调整基础准像素(设计稿:宽320,dpr2,像素点640;设备尺寸:宽375,dpr3,像素点则为1125)
- 利用px2rem自动转换css单位
<meta name="viewport" content="width=device-width,initial-scale=1.0">
- width:控制viewport的大小,可以指定的一个值,如600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为100%时的css的像素)。
- height:he width相对应,指定高度。
- initial-scale:出始缩放比例,也即是当页面第一次load的时候缩放比例。
- maximum-scale:允许用户缩放到的最大比例
- minimun-scale:允许用户缩放到的最小比例
- user-scalable:用户是否可以手动缩放
- 设计意义
- 前后端分离
- 减轻服务端压力
- 增强用户体验
- prerender预渲染优化seo
- 工作原理
- history api(更优雅 onpopstate/pushState)
//注册路由 window.history.pushState({name:'api},link,url
- hash(兼容性更好 hashchange/location.hash)
//注册路由 location.hash=link
- history api(更优雅 onpopstate/pushState)
- bable
- npm script
- EsLint
- Sass