一个基于common.js规范,webpack打包的jQuery商城平台前台项目
这个是我自己学习开发前端页面,同时完成整个项目的搭建,从初始化到上线发布,框架仅使用了jQuery,没有使用当红的一些框架,甚至没有使用样式框架如Bootstrap 为的就是学习了解一个纯正原生的前端开发过程。总之收获满满,非常开心哈哈哈哈
下面是学习过程中的一些笔记,也放这里吧哈哈哈哈哈
- 分层架构
- 解耦(可服用)
- MVC、MVVM
- 模块化
- 解耦,并行开发
- AMD、CMD、CommonJS、ES6
- JS的运行环境
- 构建工具WebPack的环境依赖
- 单线程、异步编程
npm:Node Package Manager
- Element : 网页标签结构元素
- Console : 打印日志
- NetWork : 网络以及资源的请求
- Sources ; 网页请求的所有文件,可以在里面打断点
- Application : 查看本地的一些保存信息
npm
npm init: 在项目根目录初始化npm install [email protected]npm uninstall [email protected]-g: 全局配置--registry==https://registry.npm.taobao.org: 指向淘宝npm源,速度快很多
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
npm run script: 运行自己的快捷脚本,在script里面配置
webpack
- 加载方式 : 各种loader插件
- 编译方式:commonjs模块-> function类型模块
- 官网Github
npm install webpack -g: 全局webpack安装npm install [email protected] --save-dev
--save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西。
webpack2.x版本会生成一条引用object.default的语句会在IE8中报错
webpack.config.js
entry: js的入口文件externals: 外部依赖的声明output: 目标文件resolve: 配置别名module: 各种文件,各种loaderplugin: 插件
常用loader
html:html-webpack-plugin/html-loaderjs:babel-loader+babel-preset-es2015css:style-loader+css-loaderimg+font:url-loader
常用命令
webpack: 移步压缩的形式来打包,调试代码用webpack -p: 压缩的形式来打包,常用于环境的发布webpack --watch: 监听文件改变,用于开发过程webpack --config webpack.config.js: 指定webpack配置文件
webpack-dev-server
- 作用:前端开发服务器
- 特点:可以在文件改变是,自动刷新浏览器
- 安装:
npm install webpack-dev-server --save-dev - 在webpack配置文件中添加:
webpack-dev-server/client?http://localhost:8080 - 使用:
webpack-dev-server --port 8088 inline
- Js用什么loader加载
- 考虑到IE8的兼容性问题,不使用babel-loader
- 使用webpack原生的js加载
- 官方entry只有一个js,有多个怎么办
- 具体可以看raymall项目的
webpack.config.js有丰满的注释
- 具体可以看raymall项目的
- output要分文件夹存放文件,要怎么设置
- 在
filename前面加上文件夹名字就可以了
- 在
- jquery引入方法
- 第一种:下面是基本步骤 : 这种还是比较繁琐的,因为每次都要引入
npm install jquery --save: npm的方式安装jqueryvar $ = require('jquery');$('body').html("hello");- 第二种:直接在入口的html引入就可以了
- 第三种
webpack.config里面的externals配置jquery,然后通过jquery使用
- 想要提取公共模块
- 使用
CommonsChunkPlugin官网使用指南 - 配置:看
webpack.config里面plugin的配置 - 这里不是很懂使用的必要性和简便性
- 使用
- csss使用什么loader
css-loader和style-loader
- webpack打包的css要如何独立成单独文件
- 百度webpack css独立打包
npm install html-webpack-plugin --save-dev
npm install html-loader --save-dev : 支持EJS语法,公共标签的引用
- 用法:
<%= require('html-loader!./layout/html-head.html') %>
将html打包到dist下
图片和字体的处理
针对[email protected]
需要先安装
npm install [email protected] --save-dev
然后再安装
npm install url-loader --save-dev
否则会报错,版本不够
url-loader : 图片和字体资源等的打包
热编译服务器,让前端调试更加轻松 通过配置config的变量来控制开发环境和正式环境的是否启动
npm install [email protected] --save-devnpm install [email protected] -g: 全局安装
webpack-dev-server --inline --port 8088 : 指定端口自定义启动
webstrom/idea保存不更新webpack-dev的方法:setting->System settings->取消勾选Use 'safe write' : 也就是不保存到idea的缓存临时文件
这个配置也可以让wds刷新快一点
watchOptions: {
aggregateTimeout: 300,
poll: 1000
},
字体图标库
npm install font-awesome --save
{{}}: 带转义的显示信息{{{}}}: 不带转移的,用于显示数据就是html格式的{{#imageList}} {{/imageList}}: 遍历imageList集合,{{.}}表示集中的item
<ul class="p-img-list">
{{#subImages}}
<li class="p-img-item">
<img class="p-img" src="{{imageHost}}{{.}}" alt="{{name}}"/>
</li>
{{/subImages}}
</ul>
{{^title}} message{{title}}表示 title不存在的时候显示message- ``
- 网络请求工具
- URL路径工具
- 模板渲染工具-hogan
- 字段验证 && 通用提示
- 统一跳转
- 定宽布局
- 通用部分的抽离
- 通用导航
- 通用头部
- 通用footer
- 通用侧面导航
- 通过结果返回页面
- icon-font的引入
- 通用样式
##业务开发
- 页面
- 用户登录
- 用户注册
- 找回密码
- 个人中心
- 修改密码
- 数据安全性处理方案
- 表单同步/异步验证
- 小型SPA开发
- 事件委托、事件绑定、事件监听
- hogan模板的使用
知识点
- jQuery插件模块化改造
- 轮播图插件的封装使用
- 独立组件抽离技巧
- 分页组件
- 多功能列表开发
- 原型、原型链
首页功能点:
- 推荐搜索关键字的快捷链接
- 活动展示的轮播图
- 分楼层的商品分类信息
列表页功能点
- 列表展示
- 排序
- 分页处理
详情页
- 信息展示
- 缩略图
- 添加购物车
- 商品状态随时验证
- 模块内部方法调用
- 非Form提交时的数据验证
功能点:
- 购物车商品展示
- 修改购物车数量
- 选择和取消选择,全选,反选,商品
- 结算
- Modal式组件封装思想
- 城市级联操作
- 复杂表单回填
页面
- 订单页
- 地址管理(crud)
- 订单信息展示
- 订单提交
- 订单列表页
- 订单详情页
- 订单详细信息
- 未支付订单可以继续支付
- 取消订单
- 支付宝功能对接
- 支付宝状态动态监测
- 支付成功回调
- 添加favicon
Html-webpack-plugin:添加favicon的配置
- 线上域名分离,HTML路径简化
- 添加DNS-prefetch
-就是当你浏览网页时,浏览器会加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页链接无需DNS解析,减少等待时间
- 在
head-common添加配置,把需要引用的文件域名都添加进去
- 在
- 对线上打包结果做回归测试
- PV:页面打开次数
- UV: 一个人一个是时间无论打开多少页面都算一个UV
- VV : 用户进入网站到离开,算一次VV
- 流量来源监控:
- 搜索关键词来源:
- 用户设备信息:通过屏幕分辨率,浏览器版本等分析出来
- 用户特征分析
- SEO优化技巧
- 增加页面数量
- 减少页面层级
- 关键词密度
- 高质量友链
- 分析竞争对手
- SEO监控
- 关键词设计
- 品牌关键词:Raymall、Raymall电商...
- 高频关键词:电商平台、手机、笔记本电脑、相机、手表...
- 长尾关键词:肚子疼了怎么办,什么东西便宜
- SEO监控
- 百度统计 : 数据超多,基本能够满足需求
- 添加域名
- 获取js代码,添加到head-common中
- 外部监控原理
- 第三方监控的设置
- 更高级的监控方式